无法在 Jersey/java 中调用 webservice 方法
Cannot invoke webservice method in Jersey/java
我使用 netbeans 和 jersey 制作了一个简单的 hello world web 服务。
我的问题是当我将我的网络服务部署到服务器时(我使用的是 glass fish),它将我带到索引页面,但我无法调用我在 java class 中创建的方法。
我的 glass fish 服务使用的域是
http://localhost:8080/HelloWorldApp/
要调用我的方法(根据我阅读的内容),这是执行此操作的方法:
http://localhost:8080/HelloWorldApp/helloworld
然而,这给了我一个 404。我遵循了很多示例,但似乎无法在我的网络浏览器中调用该方法。
但是,当我在 netbeans 中单击测试 RESTful Web 服务时,我可以调用该方法。
这是我定义方法的方式:
package HelloWorldResource;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.UriInfo;
import javax.ws.rs.Consumes;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.GET;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/helloworld")
public class Hellworld {
@Context
private UriInfo context;
/**
* Creates a new instance of Hellworld
*/
public Hellworld() {
}
/**
* Retrieves representation of an instance of HelloWorldResource.Hellworld
* @return an instance of java.lang.String
*/
@GET
@Produces(MediaType.TEXT_HTML)
public String getHtml() {
//TODO return proper representation object
return "<HTML>Hello</HTML>";
}
/**
* PUT method for updating or creating an instance of Hellworld
* @param content representation for the resource
*/
@PUT
@Consumes(MediaType.TEXT_HTML)
public void putHtml(String content) {
}
我查阅了另一个教程并找到了一些信息。创建了一个名为 "ApplicationConfig.java" 的 java class,它具有以下标签:@javax.ws.rs.ApplicationPath("webresources")
所以我不得不使用这个 uri 调用方法 http://localhost:8080/HelloWorldApp/webresources/helloworld
请分享您web.xml和资源配置实现。如果您有任何自定义资源配置实现,那么您的资源文件必须在资源配置实现中注册。详情请参考http://cloudskol.com/index.php/2015/09/22/simple-get-method-implementation-in-restful-java/
我使用 netbeans 和 jersey 制作了一个简单的 hello world web 服务。 我的问题是当我将我的网络服务部署到服务器时(我使用的是 glass fish),它将我带到索引页面,但我无法调用我在 java class 中创建的方法。
我的 glass fish 服务使用的域是
http://localhost:8080/HelloWorldApp/
要调用我的方法(根据我阅读的内容),这是执行此操作的方法:
http://localhost:8080/HelloWorldApp/helloworld
然而,这给了我一个 404。我遵循了很多示例,但似乎无法在我的网络浏览器中调用该方法。
但是,当我在 netbeans 中单击测试 RESTful Web 服务时,我可以调用该方法。
这是我定义方法的方式:
package HelloWorldResource;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.UriInfo;
import javax.ws.rs.Consumes;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.GET;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/helloworld")
public class Hellworld {
@Context
private UriInfo context;
/**
* Creates a new instance of Hellworld
*/
public Hellworld() {
}
/**
* Retrieves representation of an instance of HelloWorldResource.Hellworld
* @return an instance of java.lang.String
*/
@GET
@Produces(MediaType.TEXT_HTML)
public String getHtml() {
//TODO return proper representation object
return "<HTML>Hello</HTML>";
}
/**
* PUT method for updating or creating an instance of Hellworld
* @param content representation for the resource
*/
@PUT
@Consumes(MediaType.TEXT_HTML)
public void putHtml(String content) {
}
我查阅了另一个教程并找到了一些信息。创建了一个名为 "ApplicationConfig.java" 的 java class,它具有以下标签:@javax.ws.rs.ApplicationPath("webresources")
所以我不得不使用这个 uri 调用方法 http://localhost:8080/HelloWorldApp/webresources/helloworld
请分享您web.xml和资源配置实现。如果您有任何自定义资源配置实现,那么您的资源文件必须在资源配置实现中注册。详情请参考http://cloudskol.com/index.php/2015/09/22/simple-get-method-implementation-in-restful-java/