相关疑难解决方法(0)

Java RestFull WebService:使用Jersey 2.3.1库的JAX-RS实现

我试图在JBoss jboss-eap-6.1 AS上运行一个简单的"Hallo World"应用程序Jersey 2.3.1 REST服务.在web.xml中我禁用了restEasy库.在部署期间,我收到错误:

JBWEB000289:Servlet com.sun.jersey.samples.helloworld.resources.MyApplication引发了load()异常:java.lang.NoSuchMethodError:javax.ws.rs.core.Application.getProperties()Ljava/util/Map;

在POM我把这些依赖:

<dependency>
    <groupId>org.glassfish.jersey.core</groupId>
    <artifactId>jersey-server</artifactId>
    <version>2.3.1</version>
</dependency>
<dependency>
    <groupId>org.glassfish.jersey.containers</groupId>
    <artifactId>jersey-container-servlet-core</artifactId>
    <version>2.3.1</version>
</dependency>
<dependency>
    <groupId>javax.ws.rs</groupId>
    <artifactId>javax.ws.rs-api</artifactId>
    <version>2.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

这是我的web.xml,其中restEasy标签禁用:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
    <servlet>
        <servlet-name>com.sun.jersey.samples.helloworld.resources.MyApplication</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>javax.ws.rs.Application</param-name>
            <param-value>com.sun.jersey.samples.helloworld.resources.MyApplication</param-value>
        </init-param>
           <load-on-startup>1</load-on-startup>
    </servlet>
    <context-param>
        <param-name>resteasy.scan</param-name>
        <param-value>false</param-value>
    </context-param>
    <context-param>
        <param-name>resteasy.scan.providers</param-name>
        <param-value>false</param-value>
    </context-param>
    <context-param>
        <param-name>resteasy.scan.resources</param-name>
        <param-value>false</param-value>
    </context-param>
    <servlet-mapping>
        <servlet-name>com.sun.jersey.samples.helloworld.resources.MyApplication</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>
</web-app>
Run Code Online (Sandbox Code Playgroud)

我的资源配置java类:

package com.sun.jersey.samples.helloworld.resources;
import org.glassfish.jersey.server.ResourceConfig;
public class MyApplication extends  ResourceConfig {   

     public MyApplication() {
            packages("com.sun.jersey.samples.helloworld.resources");
          //super(HelloWorldResource.class);

     }
}
Run Code Online (Sandbox Code Playgroud)

有人有任何想法解决它吗?罗伯托,提前谢谢

java jax-rs jersey jboss6.x

25
推荐指数
3
解决办法
6万
查看次数

Jersey 2.1 + JBoss 7.1 NoSuchMethodError:getProperties

我正在尝试在JBoss 7.1 AS上运行Jersey 2.1 REST服务.我在部署期间收到NoSuchMethodError:javax.ws.rs.core.Application.getProperties错误:

ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/RESTService]] (MSC service thread 1-9) StandardWrapper.Throwable: java.lang.NoSuchMethodError: javax.ws.rs.core.Application.getProperties()Ljava/util/Map;
at org.glassfish.jersey.server.ApplicationHandler.<init>(ApplicationHandler.java:271) [jersey-server-2.1.jar:]
at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:283) [jersey-container-servlet-core-2.1.jar:]
Run Code Online (Sandbox Code Playgroud)

在pom.xml中我有:

<dependency>
    <groupId>org.glassfish.jersey.containers</groupId>
    <artifactId>jersey-container-servlet</artifactId>
    <version>2.1</version>
</dependency>
<dependency>
    <groupId>org.glassfish.jersey.core</groupId>
    <artifactId>jersey-client</artifactId>
    <version>2.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

并在web.xml中:

<servlet>
    <servlet-name>RESTService</servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>javax.ws.rs.Application</param-name>
        <param-value>com.gatekeeper.restservice.RESTApplication</param-value>
    </init-param>
    <init-param>
        <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
        <param-value>true</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
Run Code Online (Sandbox Code Playgroud)

以前我尝试使用Jersey 1.17.1并且它有效(在JBoss中禁用resteasy扫描和jaxrs扩展/子系统之后).到目前为止,我已经找到了一个类似的帖子(但是使用了Tomcat),其中的结论是错误的javax.ws.rs.core.Application在运行时绑定,并且绑定类是一个"旧"(JAX- RS 1.1)版本.

任何帮助如何解决这个问题?我是.net的家伙,我在java中完全失明了:)感谢Bartek

jboss jax-rs jersey jboss7.x jersey-2.0

6
推荐指数
1
解决办法
7389
查看次数

如何使用Apache CXF 2.6.7作为我的war项目的依赖,而不是安装在JBoss 7.1模块中的CXF?

我正在升级到JBoss 7.1,不幸的是我无法部署我的应用程序.我想使用Apache CXF 2.6.7,它是我们的war项目的依赖,而不是安装在JBoss 7.1模块中的CXF.不幸的是,WAR的部署失败了,出现以下警告和异常:

10:39:39,511 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-5)  JBAS015876: Starting deployment of "example.war"
10:39:49,021 WARN  [org.jboss.as.server.deployment] (MSC service thread 1-16)  Class Path entry jaxb-api.jar in "/example.war/WEB-INF/lib/jaxb-impl-2.2.5.jar"  does not point to a valid jar for a Class-Path reference.
10:39:49,024 WARN  [org.jboss.as.server.deployment] (MSC service thread 1-16)  Class Path entry activation.jar in "/example.war/WEB-INF/lib/jaxb-impl-2.2.5.jar"  does not point to a valid jar for a Class-Path reference.
10:39:49,025 WARN  [org.jboss.as.server.deployment] (MSC service thread 1-16)  Class Path entry jsr173_1.0_api.jar in "/example.war/WEB-INF/lib/jaxb-impl-2.2.5.jar"  does not …
Run Code Online (Sandbox Code Playgroud)

jboss jboss7.x

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

jax-rs ×2

jboss ×2

jboss7.x ×2

jersey ×2

java ×1

jboss6.x ×1

jersey-2.0 ×1