Glassfish 4,应用非常简单。我正在使用Kepler,使用Glassfish 4作为服务器创建了一个动态Web服务项目,允许Eclipse生成web.xml和glassfish-web.xml。上下文名称是/ calls。
应用
package com.deltacontractservices.calls.service;
import java.util.HashSet;
import java.util.Set;
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
@ApplicationPath("/rest/*")
public class CallsApplication extends Application
{
@Override
public Set<Class<?>> getClasses()
{
final Set<Class<?>> classes = new HashSet<Class<?>>();
classes.add(Controller.class);
return classes;
}
}
资源
package com.deltacontractservices.calls.service;
import javax.enterprise.context.ApplicationScoped;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
/**
* This class implements a JAX-RS service controller for the Calls API
*/
@ApplicationScoped
@Path("/rest")
public class Controller
{
@GET
@Produces(MediaType.TEXT_PLAIN)
public String base()
{
return "Calls application default.";
}
@GET
@Path("ping")
@Produces(MediaType.TEXT_PLAIN)
public String ping()
{
return "Calls application ping.";
}
}
http:// localhost:8080 / calls / rest产生“调用应用程序默认值”。好。
http:// localhost:8080 / calls / rest /产生404。
http:// localhost:8080 / calls / rest / ping产生404。
我必须遗漏一些明显的东西。请帮忙......
答案 0 :(得分:1)
好。我需要做一些像... / calls / rest / rest / ping这样的事情。我在应用程序和资源中复制了“/ rest”。将资源类更改为@Path(“”)可以正确响应 / calls / rest /和/ calls / rest / ping但不是/ calls / rest(没有尾随/)另外,更改应用程序@ApplicationPath(“/ rest”)似乎没有任何影响。
答案 1 :(得分:0)
尝试将控制器类首先放入@path这样的@Path“/”。我是这个工作人员的新手。 洗澡你可以尝试!然后答案可能是这个类的第一个方法(在休息客户端类型... / calls / rest)。如果您在rest client ../calls/rest/ping中键入请求,则可以从控制器类中的第二个方法生成答案。洗澡我不确定!只是试着帮忙!