Witam,
Nie dawno zacząłem się uczyć EJB. Jest ciężko, gdyż jeszcze nie bardzo wiem o co w tym chodzi itp. już nawet nie wspominam o serwerze JBoss, który zupełnie nie chce współpracować.
Do rzeczy... proszę mi sprawdzić czy moja prosta aplikacja EJB jest dobrze zrobiona. Nie wiem czy to wina klienta czy apki EJB.
@Singleton
@Startup
public class HelloWorld {
public String getMessage() {
return "Hello EJB";
}
}
@Stateless
@Remote(HelloInterface.class)
public class HelloService implements HelloInterface {
@EJB
private HelloWorld helloWorld;
@Override
public String printMessage() {
return helloWorld.getMessage();
}
}
public interface HelloInterface {
public String printMessage();
}
Tutaj jest kod klienta:
try {
File file = new File("text.txt");
if (!file.exists())
file.createNewFile();
PrintWriter pw = new PrintWriter(file);
jndiProperties.put(Context.INITIAL_CONTEXT_FACTORY,
"org.jboss.naming.remote.client.InitialContextFactory");
jndiProperties.put(Context.PROVIDER_URL, "remote://localhost:4447");
jndiProperties.put(Context.SECURITY_PRINCIPAL, "testuser");
jndiProperties.put(Context.SECURITY_CREDENTIALS, "testpassword");
Context context = new InitialContext(jndiProperties);
HelloInterface helloInterface = (HelloInterface) context
.lookup("java:global/HelloWorld/HelloService!pl.project.HelloInterface");
pw.write(helloInterface.printMessage());
pw.close();
Problem w tym, że nie mogę zobaczyć błędów jakie wywala klient ponieważ, gdy odpalam program to cała konsola zostaje zapełniona logami JBoss. Z tego co widzę to program przestaje działać w miejscu, gdzie pobieram z context komponent.