Собрал и задеплоил war на WildFly, но в клиенте выдает ошибку No EJB receiver available for handling [appName:EJBCalc, moduleName:EJBCalc, distinctName: ] combination for invocation context org.jboss.ejb.client.EJBClientInvocationContext@1057305
Код сервера:
package ru.dvach.calculator;
import javax.ejb.Remote;
@Remote
public interface CalculatorBeanRemote {
public int summ(int x, int y);
}
package ru.dvach.calculator;
import javax.ejb.Stateless;
/**
* Session Bean implementation class CalculatorBean
*/
@Stateless
public class CalculatorBean implements CalculatorBeanRemote {
/**
* Default constructor.
*/
public CalculatorBean() {
// TODO Auto-generated constructor stub
}
@Override
public int summ(int x, int y) {
return x + y;
}
}
Код клиента:
package ru.dvach.calculator;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
public class Program {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
System.err.println("Init EJB context...");
Context context = new InitialContext();
System.err.println("Create CalculatorBean...");
final String appName = "EJBCalc";
final String moduleName = "EJBCalc";
final String distinctName = "";
final String beanName = CalculatorBean.class.getSimpleName();
final String viewClassName = CalculatorBeanRemote.class.getName();
final String contextString = String.format(
"ejb:%1s/%2s/%3s/%4s!%5s",
appName, moduleName, distinctName,
beanName, viewClassName);
CalculatorBeanRemote helloBean = (CalculatorBeanRemote)
context.lookup(contextString);
System.err.println("Call summ method...");
System.out.println(helloBean.summ(2, 3));
System.err.println("Done.");
} catch (NamingException ex) {
System.err.println("Exception: " + ex.getClass().getName());
System.err.println(ex.getMessage());
}
}
}
Файл jndi.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
remote.connection.default.username=admin
remote.connection.default.password=123
java.naming.factory.url.pkgs=org.jboss.ejb.client.naming
jboss.naming.client.ejb.context=true
Почему и что делать? Вроде все писал по манам.