我正在使用 NetBeans 并使用 gradle 作为依赖管理在 Java 中开发 WebService。
我发现这篇关于使用 gradle 开发 Web 项目的文章。它使用 Gretty 插件。我按照说明操作(只是将 servlet 容器从 jetty 更改为 tomcat),可以开发/部署一个 Web 项目并从 servlet 打开“主页”。
问题是我的 WebService 类不能正常工作。从我的浏览器发出的所有 GET 请求都返回 404 错误代码。为了测试,我使用 Netbeans 制作了一个新的 WebProject,但这次没有 Gradle,它就像一个魅力。
下面是代码:
构建.gradle
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'org.akhikhl.gretty:gretty:+'
}
}
apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'org.akhikhl.gretty'
gretty {
port = 8088
contextPath = '/sisvendas'
servletContainer = 'tomcat8'
}
repositories {
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.10'
compile group: 'javax.servlet', name: 'javax.servlet-api', version: '3.1.0'
compile group: 'javax.ws.rs', name: 'javax.ws.rs-api', version: '2.0.1'
}
资源:
@Path("produtos")
public class ProdutosResource {
@Context
private UriInfo context;
public ProdutosResource() {
}
@GET
@Produces("application/json")
public String getJson() {
// Just for testing...
return "{\"produtos\":\"arroz\"}";
}
@PUT
@Consumes("application/json")
public void putJson(String content) {
}
}
应用配置类:
public class ApllicationConfig extends Application{
@Override
public Set<Class<?>> getClasses() {
Set<Class<?>> resourcesSet = new java.util.HashSet<>();
adicionarClassesRecursos( resourcesSet );
return resourcesSet;
}
private void adicionarClassesRecursos( Set<Class<?>> resources ) {
resources.add( com.gear.dev.webprojectgradle.resources.ProdutosResource.class );
}
}
这是 GET 的网址:http://localhost:8088/sisvendas/produtos
正如我之前所说,以下请求有效:http://localhost:8088/sisvendas/ (还有一个 index.html 文件没用)
我做错了什么?