Java将Jar项目转换为War项目



我已经构建了一个java程序,它登录到游戏服务器并要求用户输入ID,然后向游戏服务器发送一个打包程序,并解析并打印出回复。

我需要将其转换为将在Tomcat上运行的API,我假设?我已经在我的服务器上安装了Tomcat,但我不确定现在该怎么做,以及转换它的正确方法是什么。

任何帮助都将非常感激。

我过去也做过类似的事情。主要是将常规应用程序转换为web应用程序。或者更简单地说,将应用程序包装在Servlet web应用程序中,以便可以通过HTTP API进行控制。

顺便说一下,有多种方法可以做到这一点。事实上有很多。这只是一种方法。servlet是一个Java接口,它允许开发人员快速创建服务器,主要是HTTP服务器,尽管它不仅限于此。Tomcat是一个Servlet容器。这意味着您可以创建Servlet,然后将其注册到Servlet容器,可以使用称为web.xml的特殊文件或注释。在下面的示例中,我使用WebServlet注释向Tomcat注册我的Servlet。注册后,Tomcat将发送任何请求到您的应用程序(WAR文件的名称)和特定的Servlet(注册的urlPatterns,请参见下面的示例)。因此,如果您的WAR文件名为"MyWebServer",并且您的Servlet已经注册了urlPattern"getSomething",那么使用URL MyWebServer/getSomething对Tomcat的任何请求都将被定向到您的Servlet的doGet或doPost命令。如果您做一个简单的浏览器请求(或Linux上的curl),没有msg主体,那么默认情况下它是一个HTTP GET请求。现在坚持使用GET请求,直到掌握窍门为止。

一些你需要的东西

1)知道如何将Java应用程序打包到WAR文件中。然后,WAR文件将进入Tomcat的webapp文件夹。当Tomcat启动时,它将解压缩该目录中的WAR文件,并托管在该WAR文件中实现的web应用程序。请仔细阅读WAR文件。最简单的方法是使用您的IDE(我更喜欢Netbeans),然后单击"新建项目"。在Netbeans中,您可以选择新建Maven->Web应用程序项目-或- Java->Web应用程序。它将设置目录结构。

2)您将需要一个Servlet。创建一个服务器,请仔细阅读。再一次,您的IDE将使事情变得简单。在Servlet 3中。您可以使用注解配置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文件夹中。

最新更新