我正在尝试使用RESTful Web服务和EJB连接将Java EE Web应用程序部署到另一个Java EE应用程序。 我遇到了几个问题而且我没有记下每一个具体的问题,所以我别无选择,只能连续告诉你们。
1)首先,我使用Tomcat来运行应用程序,我无法使EJB连接工作。无论如何,我收到JNDI错误:NamingContextFactory class not found
。 为什么?
我的JNDI连接如下:
String hostname = "localhost";
String port = "1099";
String url = "jnp://" + hostname + ":" + port + "/";
Properties h = new Properties();
h.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
h.put(Context.PROVIDER_URL, url);
h.put(Context.URL_PKG_PREFIXES, "org.jboss.naming.client");
initialContext = new InitialContext(h);
2)因此,由于使用的服务器不相关,并且我正在尝试连接的应用程序使用JBoss(4.4.2.GA),我尝试在同一JBoss下部署我的应用程序。我无法部署它,我有一个REST问题:部署时ClassNotFoundException: javax.ws.rs.core.ApplicationConfig
。
2.1)我正在使用Netbeans进行编译,ApplicationConfig.class
不是我在编译时使用的JAX-RS api jsr311-api-1.1.jar
的1.1版本的一部分。自从我之前使用的0.8版本以来,库的实现已经改变,但我不得不升级jar,因为它不包括@FormParam
。到目前为止,我已经找到了使用com.sun.jersey.api.representation.FormParam
的解决方法,但据我所知,Jersey与JBoss不兼容。
为什么是在战争中没有使用ApplicationConfig的服务器?
2.2)我知道我必须使用RESTEasy,JBoss 4不包含它,所以必须手动安装它。但RESTEasy文档建议我彻底修改我的项目我添加了很多jar,servlet等。从我的角度来看,我只需要在我的JAX-RS API的服务器库上进行RESTful实现,这只是一个接口,将在部署应用程序后引用。我可能对Java EE库链接的工作方式有一些严重的误解。 请帮忙。
所以我知道这里有几个不同的问题,但我无法将它们分开。我已经失去了很多时间,我担心我的项目。提前谢谢。