我已经在Eclipse上创建了一个带有一个类“ HelloWorld.java”的Web项目,它应该具有一种可以回答GET请求的方法。
package javaeetutorial.hello;
// imports
@Path("base")
public class HelloWorld extends HttpServlet {
public HelloWorld() {
}
@GET
@Produces("text/html")
public String getHtml() {
return "<html lang=\"en\"><body><h1>Hello, World!!</h1></body></html>";
}
}
然后,在WebContent文件夹的WEB-INF目录中,我创建了一个web.xml文件,其中包含以下内容,以便将对/ hello URL的请求映射到我的servlet。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
metadata-complete="true"
version="3.1">
<servlet>
<servlet-name>hello</servlet-name>
<servlet-class>javaeetutorial.hello.HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>hello</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>
</web-app>
我将项目导出到.war文件,然后使用Glassfish进行部署,但是当我调用应该调用我的Web服务的URL时,它将显示“请求的资源()不可用”。
我正在呼叫的网址是:http://localhost:8080/Calculator/hello/base
为什么没有调用我的Web服务?
答案 0 :(得分:0)
正如VGR在评论中指出的那样,我将JAX-RS与Servlet混淆了。
我选择使用servlet路由。我删除了所有注释并将getHTML方法替换为HttpServlet的doGet方法的替代。现在一切都按预期进行。