无法在 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/