gpt4 book ai didi

java - 其余 Web 服务的 URL 是什么?

转载 作者:行者123 更新时间:2023-12-01 12:40:20 24 4
gpt4 key购买 nike

我正在研究在 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 中预定义的

在第一种方法中没有提供这一点 - 那么我们如何不调用此服务呢?

谢谢

最佳答案

如果您正在谈论如何访问您创建的端点,那么您将需要将您的java web项目部署到某个应用程序服务器(例如Tomcat,WAS等),并且您可以通过任何类型访问它客户端(例如网络浏览器)。

您可以通过将项目导出为 war 并将其部署到应用程序服务器,或者通过在 eclipse 中运行它来将其部署到服务器,假设您有正确的环境设置 (wtp)。

关于java - 其余 Web 服务的 URL 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25168078/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com