EJB报错如下:
javax.naming.NameNotFoundException: remote not bound at org.jnp.server.NamingServer.getBinding(NamingServer.java:529) at org.jnp.server.NamingServer.getBinding(NamingServer.java:537) at org.jnp.server.NamingServer.getObject(NamingServer.java:543) at org.jnp.server.NamingServer.lookup(NamingServer.java:296) at org.jnp.server.NamingServer.lookup(NamingServer.java:270) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 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:619) 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:667) at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:627) at javax.naming.InitialContext.lookup(InitialContext.java:392) at junit.test.PersionServiceTest.setUpBeforeClass(PersionServiceTest.java:22) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.junit.internal.runners.BeforeAndAfterRunner.invokeMethod(BeforeAndAfterRunner.java:74) at org.junit.internal.runners.BeforeAndAfterRunner.runBefores(BeforeAndAfterRunner.java:50) at org.junit.internal.runners.BeforeAndAfterRunner.runProtected(BeforeAndAfterRunner.java:33) at org.junit.internal.runners.TestClassRunner.run(TestClassRunner.java:52) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:38) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
当然就算是初学者也知道,绑定不上远程!可到底是哪里绑定不上呢?可以一步步的测试!
先看三个文件:
远程接口文件:
package service.impl; import java.util.List; import javax.ejb.Remote; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import service.PersionService; import bean.Persion; @Stateless @Remote(PersionService.class) public class PersoinServiceBean implements PersionService { @PersistenceContext(unitName = "golden") EntityManager en; public void delete(Integer persionid) { en.remove(en.getReference(Persion.class, persionid)); } public Persion getPersion(Integer persionid) { return en.find(Persion.class, persionid); } @SuppressWarnings("unchecked") public List<Persion> getPersions() { return en.createQuery("select * from Persion p").getResultList(); } public void save(Persion persion) { en.persist(persion); } public void update(Persion persion) { en.merge(persion); } }
连接池配置文件:persistence.xml(在项目SRC下的META-INF下)
<?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0"> <persistence-unit name="golden" transaction-type="JTA"> <jta-data-source>java:goldenDS</jta-data-source> </persistence-unit> </persistence>
Jboss连接数据库配置文件,这里是用的是Mysql
<?xml version="1.0" encoding="UTF-8"?> <datasources> <local-tx-datasource> <jndi-name>goldenDS</jndi-name> <connection-url> jdbc:mysql://localhost:3306/golden?useUnicode=true&characterEncoding=utf-8 </connection-url> <driver-class>com.mysql.jdbc.Driver</driver-class> <user-name>root</user-name> <password>root</password> <exception-sorter-class-name> org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter </exception-sorter-class-name> <metadata> <type-mapping>mySQL</type-mapping> </metadata> </local-tx-datasource> </datasources>
1.先看服务器是否连接上了数据库,启动服务器 连接到主页从 JMX Console 可以看到相应链接池的情况
2.看远程接口是否正确,去除管理对象
@PersistenceContext(unitName = "golden") EntityManager en;
这时通过测试看是否能得到远程的对象
如果远程无法绑定或相应的远程接口无法绑定,则一个可能是由于接口本身创建时错误,还有可能是接口实现类内部调用的对象出错!
本次错误就是因为调用的管理对象无法创建造成的!
首选是服务器配置文件的错误,连接字符串不正确,再者,persistence.xml一定要在META-INF下切这个文件名称全是小写!
相关推荐
not bound,jboss不能热部署jar文件,jboss不能生成对应的jndi,jar部署到deploy下没有部署信息反馈,jboss端口更改, jboss常见问题处理,
ejb服务端工程,myeclipse工程
NULL 博文链接:https://676744379-qq-com.iteye.com/blog/1853336
Tomcat下web工程调用JBOSS部署的EJB项目 此源码包 包括local本地调用及remote远程调用 文档说明在http://blog.csdn.net/heardy/article/details/6906225
javax.ejb.Remote.class javax.ejb.RemoteHome.class javax.ejb.Remove.class javax.ejb.RemoveException.class javax.ejb.Schedule.class javax.ejb.ScheduleExpression.class javax.ejb.Schedules.class javax.ejb...
实战EJB 实战EJB 实战EJB 电子书 pdf
javax.ejb.Remote.class javax.ejb.RemoteHome.class javax.ejb.Remove.class javax.ejb.RemoveException.class javax.ejb.Schedule.class javax.ejb.ScheduleExpression.class javax.ejb.Schedules.class javax.ejb...
EJB方面EJB方面EJB方面EJB方面EJB方面
javax.ejb.Remote.class javax.ejb.RemoteHome.class javax.ejb.Remove.class javax.ejb.RemoveException.class javax.ejb.Schedule.class javax.ejb.ScheduleExpression.class javax.ejb.Schedules.class javax.ejb...
然后可以将生成的文件target/ejb-remote-server.jar部署到正在运行的Wildfly服务器(例如,通过管理控制台)。 maven中的install命令还将在本地maven存储库中安装该软件包,因此EJB客户端可以找到EJB的远
Java EJB自定义错误信息的例子,提示信息本地化的一个测试,这个代码触发调用一个状态Bean中的方法,定义了CountBean接口,调用了每一个EJB对象的count(),保证Bean正常被激活和钝化,同时还使用了累加器,以对话...
包括: J2EE技术面试题 EJB面试题 JDBC面试题 JSP面试题 Servlet面试题
EJB集群资料EJB集群资料EJB集群资料EJB集群资料
这里面介绍了在weblogic下如何配置ejb,还有例子
java反射与EJBjava反射与EJBjava反射与EJBjava反射与EJBjava反射与EJBjava反射与EJB
ejb-3_0-fr-spec-ejbcore.pdf ejb-3_0-fr-spec-persistence.pdf ejb-3_0-fr-spec-simplified.pdf
这本是介绍你如何在websphere上面部署ejb,和如何写ejb
WebSphere环境下EJB编程(IBM红皮书)
ejb3中文版
ejb+hibernate资料 ejb+hibernate资料 ejb+hibernate资料 ejb+hibernate资料