我很难将桌面应用程序的示例Web服务部署到tomcat。
这是我的课程
AppConfig.java
@ApplicationPath("sample-ws")
public class AppConfig extends Application {
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> resources = new HashSet<Class<?>>();
resources.add(HelloWorld.class);
return resources;
}
}
HelloWorld.java
@Path("hello-world")
public class HelloWorld {
@GET
public String hello(){
return "hello world";
}
}
的pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.sample</groupId>
<artifactId>sample-ws</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<build>
<finalName>sample-ws</finalName>
</build>
<dependencies>
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>jsr311-api</artifactId>
<version>1.1.1</version>
</dependency>
</dependencies>
</project>
我不知道在我的web.xml中写什么,我无法使这个东西工作。我错过了什么?
P.S。如果这很重要,我使用的是apache-tomcat-8.0.23
答案 0 :(得分:1)
在web.xml中,您应该添加一个用于启动框架的侦听器,以及用于Web服务的url映射。看看这篇文章:http://www.mkyong.com/webservices/jax-ws/deploy-jax-ws-web-services-on-tomcat/
但是,您的web.xml应该类似于:
<web-app>
<listener>
<listener-class>
com.sun.xml.ws.transport.http.servlet.WSServletContextListener
</listener-class>
</listener>
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>
com.sun.xml.ws.transport.http.servlet.WSServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>