Java 从openejb进行JAX-RS 2调用?

Java 从openejb进行JAX-RS 2调用?,java,jax-rs,openejb,Java,Jax Rs,Openejb,我们正在运行WebSphere9和openejb 4.7.2作为我们的应用服务器。Websphere托管REST服务并调用REST服务 我们现在想在openejb中调用和托管服务。我们从调用REST服务开始 我想知道为了加载javax.ws.rs.client.client,我们应该在类路径中包含什么jar 同一类在websphere中运行良好,无需任何修改,但这是我们从openejb启动时获得的stacktrace: java.lang.NoClassDefFoundError: Could

我们正在运行WebSphere9和openejb 4.7.2作为我们的应用服务器。Websphere托管REST服务并调用REST服务

我们现在想在openejb中调用和托管服务。我们从调用REST服务开始

我想知道为了加载javax.ws.rs.client.client,我们应该在类路径中包含什么jar

同一类在websphere中运行良好,无需任何修改,但这是我们从openejb启动时获得的stacktrace:

java.lang.NoClassDefFoundError:
Could not fully load class: my.class.RESTClientBean due to:javax.ws.rs.client.Client in classLoader:
org.apache.openejb.core。TempClassLoader@ba08782 位于org.apache.xbean.finder.ClassFinder.ClassFinder.java:136 位于org.apache.xbean.finder.ClassFinder.ClassFinder.java:127 在org.apache.openejb.config.rules.CheckCallbacks.validateCheckCallbacks.java:85 位于org.apache.openejb.config.rules.ValidationBase.validateValidationBase.java:50 位于org.apache.openejb.config.AppValidator.validateAppValidator.java:101 位于org.apache.openejb.config.validateModule.DeployValidateModule.java:38 位于org.apache.openejb.config.ConfigurationFactory$Chain.deployConfigurationFactory.java:403 位于org.apache.openejb.config.ConfigurationFactory.configureApplicationConfigurationFactory.java:971 在org.apache.openejb.config.ConfigurationFactory.configureApplicationConfigurationFactory.java:832 位于org.apache.openejb.config.ConfigurationFactory.getOpenEjbConfigurationConfigurationFactory.java:546 位于org.apache.openejb.config.ConfigurationFactory.getOpenEjbConfigurationConfigurationFactory.java:591 位于org.apache.openejb.assembler.classic.assembler.getOpenEjbConfigurationAssembler.java:459 位于org.apache.openejb.assembler.classic.assembler.buildAssembler.java:438 位于org.apache.openejb.openejb$Instance.openejb.java:150 在org.apache.openejb.openejb$Instance.openejb.java:67 位于org.apache.openejb.openejb.initOpenEJB.java:298 位于org.apache.openejb.openejb.initOpenEJB.java:278 在sun.reflect.NativeMethodAccessorImpl.invoke0Native方法中 位于sun.reflect.NativeMethodAccessorImpl.invokeNativeMethodAccessorImpl.java:95 在sun.reflect.DelegatingMethodAccessorImpl.invokeDelegatingMethodAccessorImpl.java:55 位于java.lang.reflect.Method.invokeMethod.java:508 位于org.apache.openejb.loader.OpenEJBInstance.initOpenEJBInstance.java:36 位于org.apache.openejb.core.LocalInitialContextFactory.initLocalInitialContextFactory.java:98 位于org.apache.openejb.core.LocalInitialContextFactory.initLocalInitialContextFactory.java:62 位于org.apache.openejb.core.LocalInitialContextFactory.getInitialContextLocalInitialContextFactory.java:46 位于javax.naming.spi.NamingManager.getInitialContextNamingManager.java:695 位于javax.naming.InitialContext.getDefaultInitCtxInitialContext.java:324 在javax.naming.InitialContext.initInitialContext.java:255 位于javax.naming.InitialContext.InitialContext.java:227 在my.calling.Util.initUtil.java:199

简化代码示例:

import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.core.Response;
...
private static void start() {
        Client client = ClientBuilder.newClient();
        Response response = client.target(URI + "abc?code=41").request().get();
        int status = response.getStatus();
        System.out.println("Status code: " + status);
    }

EJB和JAXR是两种不同的规范。OpenEJB实现EJB规范。要使用JaxRS API进行RESTFul服务调用,需要一个实现JaxRS规范的库。 泽西岛就是这样一个图书馆。看看这里-


<>有其他的JAXRS实现,比如RESSTAY、REST等,

在CLSASP中是否包含JAXRS API的JAR?而且,JaxRS只是一个规范,在类路径中还需要像Jersey或RestEasy这样的实现库。规范和实现。你能告诉我在哪里能找到它们吗?在openejb附带的库目录中找不到它们。请看一看-是的,这很有用!你能把它作为这个问题的答案,这样我就可以把它标记为正确的吗?谢谢!