Здравствуйте помогите новичку в EJB 3.0 И так имеется Entity Bean: Код | package org.server;
import java.io.Serializable; import javax.persistence.Entity; import javax.persistence.Id;
@Entity public class User implements Serializable { private static final long serialVersionUID = 1L; public User(){} public User(String email, String password){ this.email = email; this.password = password; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; }
@Id private String email; private String password;
}
|
Имеется Session Bean и его интерфейс: Код | package org.server;
import javax.ejb.Remote;
@Remote public interface BusinessInterface { public void newUser(); }
package org.server;
import org.server.User; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext;
@Stateless public class Session implements BusinessInterface{ @PersistenceContext private EntityManager manager;
public void newUser() { manager.persist(new User("[email protected]", "myPassword")); } }
|
jndi.properties #jboss JNDI properties java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces java.naming.provider.url=localhost:1099 И имеется код который тестирует: Код | package org.client;
import javax.naming.InitialContext; import javax.naming.NamingException;
import org.server.BusinessInterface;
public class test { public static void main(String[] args){ BusinessInterface logic = null; try { InitialContext ctx = new InitialContext(); logic = (BusinessInterface)ctx.lookup("Session/remote"); } catch (NamingException e) { e.printStackTrace(); } logic.newUser(); }
}
|
Всё создано в Eclipse. Сервер приложений - JBOSS 5.0 Деплоим с помощью эклипса. Запускаем и получаем эксепшн: Код | javax.naming.NameNotFoundException: Session not bound at org.jnp.server.NamingServer.getBinding(NamingServer.java:771) at org.jnp.server.NamingServer.getBinding(NamingServer.java:779) at org.jnp.server.NamingServer.getObject(NamingServer.java:785) at org.jnp.server.NamingServer.lookup(NamingServer.java:396) at sun.reflect.GeneratedMethodAccessor248.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305) at sun.rmi.transport.Transport$1.run(Transport.java:159) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:155) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:255) at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:233) at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:142) at org.jnp.server.NamingServer_Stub.lookup(Unknown Source) at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:722) at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:682) at javax.naming.InitialContext.lookup(InitialContext.java:392) at org.client.test.main(test.java:13) Exception in thread "main" java.lang.NullPointerException at org.client.test.main(test.java:17)
|
Предпологаю проблема в @PersistenceContext private EntityManager manager; или с чем-то связанным с EntityBean, потому как простоейший Session Bean работает. Пробывал создавать persistence.xml. Не помогает. Таже ошибка.
|