为什么我不能调用这个简单的网络服务?
Why can't I call this simple web service?
我在 Eclipse 上创建了一个 Web 项目 class: "HelloWorld.java",它应该有一个响应 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 部署它,但是当我调用 URL 时,它显示我 "The requested resource () is not available" .
我拨打的URL是:http://localhost:8080/Calculator/hello/base
为什么我的网络服务没有被调用?
正如 VGR 在评论中指出的那样,我混淆了 JAX-RS 和 Servlet。
我选择了 servlet 路线。我删除了所有注释并用 HttpServlet 的 doGet 方法的覆盖替换了我的 getHTML 方法。现在一切正常。
我在 Eclipse 上创建了一个 Web 项目 class: "HelloWorld.java",它应该有一个响应 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 部署它,但是当我调用 URL 时,它显示我 "The requested resource () is not available" .
我拨打的URL是:http://localhost:8080/Calculator/hello/base
为什么我的网络服务没有被调用?
正如 VGR 在评论中指出的那样,我混淆了 JAX-RS 和 Servlet。
我选择了 servlet 路线。我删除了所有注释并用 HttpServlet 的 doGet 方法的覆盖替换了我的 getHTML 方法。现在一切正常。