我正在研究在jboss上部署jax-rs Web服务的不同方法,并找到了两种可能的方法(这些可以在下面看到)
接近1
@ApplicationPath("rest")
public class ServerStart extends Application{
private Set<Object> singletons = new HashSet<Object>();
public ServerStart() {
singletons.add(new ExposedFunctions());
}
@Override
public Set<Object> getSingletons() {
return singletons;
}
}
XML
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:web="http://java.sun.com/xml/ns/javaee" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>Swiped Service</display-name>
<servlet>
<servlet-name>swipedserver</servlet-name>
<servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
<init-param>
<param-name>javax.ws.rs.Application</param-name>
<param-value>com.swiped.main.ServerStart</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>swipedserver</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>
接受请求的类
@Path("/functions")
public class ExposedFunctions {
private static Logger logger = Logger.getLogger(ExposedFunctions.class);
private DBFactoryController controller = new DBFactoryController();
public ExposedFunctions(){
if(controller!= null){
controller.buildCache();
}
}
@GET
@Path("/register/{username}/{password}/{email}/{firstname}/{lastname}")
@Produces(MediaType.TEXT_PLAIN)
public String register(@PathParam("username") String username, @PathParam("password") String password, @PathParam("email") String email, @PathParam("firstname") String firstname, @PathParam("lastname") String lastname) {
System.out.println(true);
if(StringUtilities.stringEmptyOrNull(username, password, email, firstname, lastname)){
logger.error("String was null or empty when registering");
}
RegistrationStatus status = controller.register(username, password, email, firstname, lastname);
return status.getValue();
}
}
接近2
public static void main(String[] args){
try{
HttpServer server = HttpServerFactory.create(BASE_URI);
server.start();
System.out.println("Press Enter to stop the server. ");
System.in.read();
server.stop(0);
}catch(Exception e){
e.printStackTrace();
}
}
现在在方法二中,你在如何调用服务时非常明确,URL是在变量BASE_URI中预定义的
在第一种方法中没有提供 - 所以我们怎么没有如何调用这项服务?
由于
答案 0 :(得分:1)
如果您正在讨论如何访问您已创建的端点,那么您需要将您的Java Web项目部署到某个应用服务器(例如Tomcat,WAS等),您可以通过任何类型的客户端(例如Web浏览器)。
假设您拥有正确的环境设置(wtp),您可以将项目作为战争导出,将战争部署到应用服务器,或者在eclipse中运行,将其部署到服务器。