1

我正在尝试使用 RESTful Web 服务和与另一个 Java EE 应用程序的 EJB 连接来部署 Java EE Web 应用程序。我遇到了几个问题,我没有写下每一个具体的问题,所以我别无选择,只能连续告诉你。

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它不是我在编译时使用的 1.1 版本的 JAX-RS api 的一部分jsr311-api-1.1.jar。库的实现自 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 库链接的工作方式有一些严重的误解。请帮忙。

所以我知道这里有几个不同的问题,但我无法将它们分开。我为此浪费了太多时间,以至于我为我的项目感到担心。提前致谢。

4

0 回答 0