我需要ApplicationConfig.java吗
试图通过项目名我需要ApplicationConfig.java吗,java,rest,tomcat,jersey,Java,Rest,Tomcat,Jersey,试图通过项目名webservicestful\u服务器在Eclipse中创建我的第一个简单web服务演示休息类别代码: package ws; import javax.ws.rs.*; import javax.ws.rs.core.*; @Path("demo") public class DemoRest { @GET @Path("hello") @Produces(MediaType.TEXT_PLAIN) public String hello
webservicestful\u服务器在Eclipse中创建我的第一个简单web服务<代码>演示休息
类别代码:
package ws;
import javax.ws.rs.*;
import javax.ws.rs.core.*;
@Path("demo")
public class DemoRest {
@GET
@Path("hello")
@Produces(MediaType.TEXT_PLAIN)
public String hello()
{
return "Hello world";
}
}
根据手册,我发现我需要ApplicationConfig
class。我做到了:
package ws;
import java.util.Set;
import javax.ws.rs.core.Application;
@javax.ws.rs.ApplicationPath("rest")
public class ApplicationConfig extends Application {
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> resources = new java.util.HashSet<>();
addRestResourceClasses(resources);
return resources;
}
private void addRestResourceClasses(Set<Class<?>> resources) {
//add all resources classes
resources.add(ws.DemoRest.class);
}
}
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>WebServiceRestful_Server</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>
webservicestful_服务器
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
如果您可以发布web.xml和pom.xml(如果您使用的是maven),那么就更容易找出问题所在。用jersey配置tomcat可能很困难,因为有太多的方法可以做到这一点。不同的servlet和jersey版本可以有不同的配置方式。可以以非常灵活的方式配置更高的版本,这会导致很多混乱
注释@javax.ws.rs.ApplicationPath(“rest”)
意味着servlet 3容器(Tomcat 7或更高版本)就是您正在使用的。如果我需要在不查看web.xml的情况下进行猜测,我会说确保将web.xml配置为使用版本3,而不是版本2
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
...
</web-app>
...
您甚至可以删除web应用程序标记中的所有内容,jersey将扫描您的所有文件以查找您的应用程序类和所有资源类(至少用@Path或@GET等注释)。
如果不起作用,有两个建议:
- 如果您有时间,请查看最新的泽西岛,第4.7节。基于Servlet的部署是您想要阅读的内容
- 如果没有时间,最快的方法是运行这个maven命令,为您设置一个新项目。此命令实际上是建议在jersey浏览器中下载jersey的方法
mvn原型:generate-DarchetypeGroupId=org.glassfish.jersey.archetypes-DarchetypeArtifactId=jersey快速入门webapp-DarchetypeVersion=2.25.1
提醒:在运行上面的maven命令后,将web.xml中的版本更改为3.0。如果您可以发布web.xml和pom.xml(如果您使用的是maven),那么就更容易找出问题所在。用jersey配置tomcat可能很困难,因为有太多的方法可以做到这一点。不同的servlet和jersey版本可以有不同的配置方式。可以以非常灵活的方式配置更高的版本,这会导致很多混乱
注释@javax.ws.rs.ApplicationPath(“rest”)
意味着servlet 3容器(Tomcat 7或更高版本)就是您正在使用的。如果我需要在不查看web.xml的情况下进行猜测,我会说确保将web.xml配置为使用版本3,而不是版本2
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
...
</web-app>
...
您甚至可以删除web应用程序标记中的所有内容,jersey将扫描您的所有文件以查找您的应用程序类和所有资源类(至少用@Path或@GET等注释)。
如果不起作用,有两个建议:
- 如果您有时间,请查看最新的泽西岛,第4.7节。基于Servlet的部署是您想要阅读的内容
- 如果没有时间,最快的方法是运行这个maven命令,为您设置一个新项目。此命令实际上是建议在jersey浏览器中下载jersey的方法
mvn原型:generate-DarchetypeGroupId=org.glassfish.jersey.archetypes-DarchetypeArtifactId=jersey快速入门webapp-DarchetypeVersion=2.25.1
提醒:运行上面的maven命令后,使用maven将web.xml中的版本更改为3.0?在pom.xml
中有哪些依赖项?使用web.xml
?它是什么样子的?我已经用web.xml和pom.xml更新了问题主体,提供了
删除它。这仅在容器已经有此工件的情况下发生。Tomcat没有球衣。当您使用提供的时,工件不会随战争一起部署。所以你的球衣罐子都没有了deployed@vico除了以下内容(这将解决问题),您还应该删除javax.j2ee
依赖项。你不需要,用Maven?在pom.xml
中有哪些依赖项?使用web.xml
?它是什么样子的?我已经用web.xml和pom.xml更新了问题主体,提供了
删除它。这仅在容器已经有此工件的情况下发生。Tomcat没有球衣。当您使用提供的时,工件不会随战争一起部署。所以你的球衣罐子都没有了deployed@vico除了以下内容(这将解决问题),您还应该删除javax.j2ee
依赖项。你不需要,我已经用web.xml和pom.xml更新了问题体,我用web.xml和pom.xml更新了问题体