Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法测试restful web服务_Java_Rest - Fatal编程技术网

Java 无法测试restful web服务

Java 无法测试restful web服务,java,rest,Java,Rest,我正在创建一个简单的restful服务,并使用soapui对其进行测试。 每次我收到错误:500:内部服务器错误。 在服务器日志中,它显示找不到类。添加jar会导致冲突。 我认为这只是罐子的问题,但不知道确切的罐子 web.xml:- <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.j

我正在创建一个简单的restful服务,并使用soapui对其进行测试。 每次我收到错误:500:内部服务器错误。 在服务器日志中,它显示找不到类。添加jar会导致冲突。 我认为这只是罐子的问题,但不知道确切的罐子

web.xml:-

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>Service</display-name>
 <servlet>
        <servlet-name>Jersey REST Service</servlet-name>
        <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>com.sun.jersey.config.property.packages</param-name>
            <param-value>com.service</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Jersey REST Service</servlet-name>
        <url-pattern>/rest/*</url-pattern>
    </servlet-mapping>  
</web-app>
Java代码:-

package com.service;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;

@Path("/cal/")
public class RestService {

    @GET
    @Path("/one/")
    @Produces("application/xml")
    public String sanction(){               
        return new Sanction().servesRequest();
    }
}
小径:-

我尝试过更改JAR、更改jersey servlet类名、eclipse、netbeans等等,但都没有成功

这就是jar的问题。 我正在下载JAR,其中包含3个文件夹,即api、ext、lib,但我没有错误地使用这些文件夹中的所有JAR。 我还必须更改web.xml,因为这些jar是用于jersey2.19的,所以新的web.xml如下

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>Service</display-name>
 <servlet>
    <servlet-name>REST Web </servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>

    <init-param>
        <param-name>jersey.config.server.provider.packages</param-name>
        <param-value>com.service</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>REST Web </servlet-name>
    <url-pattern>/rest/*</url-pattern>
  </servlet-mapping>

</web-app>

服务
RESTWeb
org.glassfish.jersey.servlet.ServletContainer
jersey.config.server.provider.packages
com.service
1.
RESTWeb
/休息/*

您可以打印异常跟踪吗here@kbirdjava.lang.NoSuchMethodError:org.objectweb.asm.ClassReader.accept(Lorg/objectweb/asm/ClassVisitor;I)V位于com.sun.jersey.spi.scanning.AnnotationScannerListener.onProcess位于com.sun.jersey.core.spi.scanning.uri.FileSchemeScanner$1.f位于com.sun.jersey.core.spi.uri.FileSchemeScanner.scanner.scanner位于com.sun.jersey.core.spi.scanning.uri.FileSchemeScanner.scannercom.sun.jersey.core.spi.scanning.PackageNamesScanner.scan位于com.sun.jersey.core.spi.scanning.PackageNamesScanner.scan位于com.sun.jersey.api.core.ScanningResourceConfig.init您可能在类路径@kbird中有重复的jar,正如我在问题中提到的,这是jar问题,但我无法知道所需的jar版本。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>Service</display-name>
 <servlet>
    <servlet-name>REST Web </servlet-name>
    <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>

    <init-param>
        <param-name>jersey.config.server.provider.packages</param-name>
        <param-value>com.service</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>REST Web </servlet-name>
    <url-pattern>/rest/*</url-pattern>
  </servlet-mapping>

</web-app>