jboss 7 ошибка тестового приложения
От: alxt  
Дата: 20.03.12 08:34
Оценка:
Взял пример https://docs.jboss.org/author/display/AS71/EJB+invocations+from+a+remote+client+using+JNDI
Редуцировал его до такого:

@Remote
public interface TestRemote {
  int add(int a, int b);
}


@Stateless
public class TestBL implements TestRemote {
  @Override
  public int add(int a, int b) {
    return a+b;
  }
}


Собрал простейший jar и задеплоил. В логах всё хорошо
[code=nocolor]
17:08:28,628 INFO [org.jboss.as.server.deployment] (MSC service thread 1-1) JBAS015876: Starting deployment of "JBoss7Test-0.SHAPSHOT.jar"
17:08:28,659 INFO [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC service thread 1-4) JNDI bindings for session bean named TestBL in deployment unit deployment "JBoss7Test-0.SHAPSHOT.jar" are as follows:
java:global/JBoss7Test-0.SHAPSHOT/TestBL!ru.start2com.test.jboss7.beans.TestRemote
java:app/JBoss7Test-0.SHAPSHOT/TestBL!ru.start2com.test.jboss7.beans.TestRemote
java:module/TestBL!ru.start2com.test.jboss7.beans.TestRemote
java:jboss/exported/JBoss7Test-0.SHAPSHOT/TestBL!ru.start2com.test.jboss7.beans.TestRemote
java:global/JBoss7Test-0.SHAPSHOT/TestBL
java:app/JBoss7Test-0.SHAPSHOT/TestBL
java:module/TestBL
17:08:28,706 INFO [org.jboss.as.server] (DeploymentScanner-threads — 2) JBAS018559: Deployed "JBoss7Test-0.SHAPSHOT.jar"
[/code]

Создал файл jboss-ejb-client.properties
[code=nocolor]
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
endpoint.name=client-endpoint
[/code=nocolor]

и клиентский код

  private static void invokeStatelessBean() throws NamingException {
    TestRemote statelessRemoteCalculator = lookupRemoteStatelessCalculator();
    int sum = statelessRemoteCalculator.add(3, 4);
    System.out.println("sum = " + sum);
  }

  private static TestRemote lookupRemoteStatelessCalculator() throws NamingException {
    Security.addProvider(new JBossSaslProvider());
    final Hashtable<String, String> p = new Hashtable<String, String>();
    p.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
    p.put(Context.SECURITY_PRINCIPAL, "alxt");
    p.put(Context.SECURITY_CREDENTIALS, "123");
    final Context context = new InitialContext(p);
    return (TestRemote) context.lookup("ejb:app/JBoss7Test-0.SHAPSHOT/TestBL!ru.start2com.test.jboss7.beans.TestRemote");
  }


При запуске на строке "int sum = statelessRemoteCalculator.add(3, 4);" ошибка

[code=nocolor]
Exception in thread "main" java.lang.IllegalStateException: No EJB receiver available for handling [appName:app,modulename:JBoss7Test-0.SHAPSHOT,distinctname:] combination for invocation context org.jboss.ejb.client.EJBClientInvocationContext@7ff5b6
at org.jboss.ejb.client.EJBClientContext.requireEJBReceiver(EJBClientContext.java:584)
at org.jboss.ejb.client.ReceiverInterceptor.handleInvocation(ReceiverInterceptor.java:119)
at org.jboss.ejb.client.EJBClientInvocationContext.sendRequest(EJBClientInvocationContext.java:181)
at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:136)
at org.jboss.ejb.client.EJBInvocationHandler.doInvoke(EJBInvocationHandler.java:121)
at org.jboss.ejb.client.EJBInvocationHandler.invoke(EJBInvocationHandler.java:104)
at $Proxy0.add(Unknown Source)
at ru.start2com.test.jboss7.client.TestRemoteClient.invokeStatelessBean(TestRemoteClient.java:23)
[/code]

При этом на сервере:
17:09:29,677 ERROR [org.jboss.remoting.remote.connection] (Remoting "alxt" read-1) JBREM000200: Remote connection failed: java.io.IOException

Пользователя добавил, пробовал без указания оного.
jboss-ejb-client.properties точно подхватывается (если поменять, к примеру, в нём порт- то не соединится).

Ткните, пожалуйста, где я ошибся. Или дайте рабочий пример (на сайте жбосса не нашёл- у всех pom.xml странный- у меня не компилируется).

PS: jboss 7.1.1
java — build 1.7.2 на сервере и 1.6.28 в клиенте (из эклипса).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.