Миграция EAP5 на JBoss7 - ошибка удаленного вызова

Привет, это мой сценарий,

Я пытаюсь перенести приложение с JBoss5 на JBoss7.

Я использую jboss-as-7.1.1.Final.

Я получаю следующую ошибку:

No EJB receiver available for handling [appName:,modulename:myapp-ejb,distinctname:] combination for invocation context org.jboss.ejb.client.EJBClientInvocationContext@6b9bb4bb
     at org.jboss.ejb.client.EJBClientContext.requireEJBReceiver(EJBClientContext.java:584) [jboss-ejb-client-1.0.5.Final.jar:1.0.5.Final]
     at org.jboss.ejb.client.ReceiverInterceptor.handleInvocation(ReceiverInterceptor.java:119) [jboss-ejb-client-1.0.5.Final.jar:1.0.5.Final]
     at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:181) [jboss-ejb-client-1.0.5.Final.jar:1.0.5.Final]
     at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:136) [jboss-ejb-client-1.0.5.Final.jar:1.0.5.Final]
     at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:121) [jboss-ejb-client-1.0.5.Final.jar:1.0.5.Final]
     at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:104) [jboss-ejb-client-1.0.5.Final.jar:1.0.5.Final]

Я просмотрел несколько обсуждений с одним и тем же сообщением об ошибке, но просто не могу понять, что делаю неправильно.

В каталоге развертываний у меня только один myapp.war. Я не развертываю файл .ear. У меня есть зависимость (myapp-ejb.jar), развернутая как модуль.

Я выполнил инструкции из https://docs.jboss.org/author/display/AS71/How+do+I+migrate+my+application+from+AS5+or+AS6+to+AS7 в разделе «Миграция развернутых приложений EAP 5, выполняющих удаленные вызовы в AS 7».

СЕРВЕР В myapp-ejb.jar у меня есть несколько имен JNDI, например:

public static final String ACCOUNT_REMOTE = "ejb:/myapp-ejb//AccountBean!com.company.myapp.ejb.account.AccountRemote";

Поиск выполняется от клиента путем вызова этого статического метода, который определен в myapp-ejb.jar:

public static AccountRemote getAccountRemote() throws NamingException {
  if (accountRemote == null){
        InitialContext ic = new InitialContext();
        Object ref = ic.lookup(JNDINames.ACCOUNT_REMOTE); 
        accountRemote = (AccountRemote) PortableRemoteObject.narrow(ref, AccountRemote.class); 
  }
  return accountRemote;
}

Все удаленные интерфейсы предназначены для EJB без сохранения состояния, например:

@Stateless
@Remote(AccountRemote.class)
public class AccountBean implements AccountRemote {

КЛИЕНТ Из myapp.war я делаю удаленный вызов myapp-ejb.jar, используя приведенный выше статический метод getAccountRemote (). В каталог myapp.war / WEB-INF я добавил jndi.properties и jboss-ejb-client.properties.

Jndi.properties содержит только одно значение:

java.naming.factory.url.pkgs=org.jboss.ejb.client.naming

Jboss-ejb-client.properties содержит:

remote.connectionprovider.create.options.org.xnio.Options.SSL_ENABLED=false

remote.connections=default

remote.connection.default.host=localhost
remote.connection.default.port=4447
remote.connection.default.connect.options.org.xnio.Options.SASL_POLICY_NOANONYMOUS=false

Я удалил область безопасности при удаленном взаимодействии из standalone.xml:

<subsystem xmlns="urn:jboss:domain:remoting:1.1">
          <connector name="remoting-connector" socket-binding="remoting" />
</subsystem>

Я добавил JBOSS_HOME / bin / client / jboss-client.jar в myapp.war / WEB-INF / lib.

Приложение успешно развертывается без каких-либо ошибок, но когда я запускаю localhost: 8080 /, я получаю приемник No EJB, доступный для обработки ошибки.

Кто-нибудь знает, что я пропустил? Какие-либо предложения?


person user1982350    schedule 16.01.2013    source источник


Ответы (2)


На самом деле вам не требуется jboss-client.jar, если вы используете JBOSS в качестве сервера приложений. Пожалуйста, добавьте следующее свойство в ваш файл initialContext или jndi.propeties, все будет хорошо.

jboss.naming.client.ejb.context=true

также удалите это свойство, если вы не звоните с автономного клиента или сервера, отличного от Jboss.

java.naming.factory.url.pkgs=org.jboss.ejb.client.naming

Попробуйте с этими настройками.

person Patton    schedule 24.04.2014

person    schedule
comment
Я не совсем понимаю, каков ответ, если возможно, попробуйте отформатировать свой пост так, чтобы фактический ответ был ясен. - person Yet Another Geek; 21.04.2014