我已经构建了一个java程序,它登录到游戏服务器并询问用户输入ID,然后将打包器发送到游戏服务器并解析并打印出回复。
我需要将其转换为将在Tomcat上运行的API我假设?我已经在我的服务器上安装了Tomcat,但我不知道现在要做什么以及转换它的正确方法是什么。
非常感谢任何帮助。
答案 0 :(得分:0)
我过去做过类似的事情。主要将常规应用程序转换为Web应用程序。或者更简单地说,将应用程序包装在Servlet Web应用程序中,以便可以通过HTTP API进行控制。
顺便提一下,有多种方法可以做到这一点。实际上很多。这只是一种方式。 Servlets是一个Java接口,允许开发人员快速创建服务器,主要是HTTP服务器,尽管它不仅限于此。 Tomcat是一个Servlet容器。这意味着您可以使用名为web.xml或注释的特殊文件创建Servlet,然后将其注册到Servlet容器。在下面的示例中,我使用WebServlet批注向Tomcat注册我的Servlet。一旦注册,Tomcat将发送任何发往您的应用程序的请求(WAR文件的名称)和特定的Servlet(注册的urlPatterns,请参见下面的示例)。因此,如果您的WAR文件名为" MyWebServer",并且您的Servlet已注册urlPattern" getSomething",那么任何使用URL MyWebServer / getSomething向Tomcat发出的请求将被定向到您的Servelet的doGet或doPost命令。如果你在没有msg主体的情况下做一个简单的浏览器请求(或在Linux上卷曲),那么默认情况下它是一个HTTP GET请求。坚持GET请求,直到你掌握它为止。
您需要做的一些事情。
1)了解如何将Java应用程序打包到WAR文件中。然后,WAR文件将进入Tomcat的webapp文件夹。当Tomcat启动时,它将解压缩该目录中的WAR文件并托管该WAR文件中实现的Web应用程序。请阅读WAR文件。最简单的方法是使用IDE,我更喜欢Netbeans,然后点击新项目。在Netbeans中,您可以选择新的Maven-> Web应用程序项目 - 或 - Java-> Web应用程序。它将设置目录结构。
2)你需要一个Servlet。创建一个Servet,请阅读它。您的IDE将再一次让您轻松自如。在Servlet 3.x中,您可以使用注释配置Servlet。你的Servlet实际上是一个HttpServet。这是一个简单的例子,你将不得不查找各种组件(如HttpServletRequest和HttpServletResponse)来获得完整的细节。 Stackoverflow拥有关于这两者如何运作的宝库信息。
@WebServlet(name = "MyWebServer", urlPatterns = {"/getSomething", "/postSomething"}, loadOnStartup = 1)
public class MyWebServer extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//Get the input to your web service from the HttpServletRequest.
String someParam = request.getParameter("someParamName");
//process your request
String output = yourExistingClass.processSomething(someParam);
//set the response
try (PrintWriter out = response.getWriter()) {
out.println(output);
}
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
}
///////////////////////////////////////////////////////////////////////////
//public functions
@Override
public void init() {
//put any code you want executed when the application comes up in here.
}
@Override
public void destroy() {
//put any code you want executed when the application comes down in here.
}
}
3)您需要在申请中包含JAR。您的IDE可以再次帮助您将JAR添加到项目中。您的JAR和任何其他依赖JAR将被打包到WAR中,特别是在WEB-INF / lib文件夹中。
我希望这有助于您入门。