java - 无法测试 Restful Web 服务

标签 java rest

我正在创建一个简单的restful 服务并使用soapui 对其进行测试。 每次我收到错误:500:内部服务器错误。 在服务器日志中,它显示 class not found 。添加 jar 就会开始发生冲突。 我认为这只是 jar 问题,但不知道确切的 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>

jar :-

com.springsource.org.objectweb.asm_2.2.3.jar
jersey-client.jar
jersey-core.jar
jersey-gf-server.jar

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();
    }
}

wadl 路径:- http://localhost:8090/Service/rest/application.wadl

我尝试过更改 jar、更改 jersey servlet 类名、eclipse、netbeans 等等,但无法将其放在地板上。

最佳答案

这是 jar 问题。 我正在从 https://jersey.java.net/download.html 下载 jars其中包含 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>

关于java - 无法测试 Restful Web 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31398881/

相关文章:

java - 为什么我的 Servlet Filter 程序显示 404 http 错误?

java - InAppBilling Activity 和 finish()

spring - 如何使 REST Controller 以环境为条件?

用于测试的 REST 监听工具

java - 临时的,在内存中,Java 中的文件

database - rest:修改与资源关联的资源的顺序

java - Spring Kafka- 试图了解事物在幕后是如何工作的

java - Spring 启动1.5.10 : implementing implicit grant

javascript - Yammer JavaScript SDK - 'Access-Control-Allow-Origin' 问题

java - 数组的值发生变化而没有任何命令影响它