Java 如何将运行在resin服务器上的web项目迁移到tomcat

Java 如何将运行在resin服务器上的web项目迁移到tomcat,java,tomcat,migration,migrate,resin,Java,Tomcat,Migration,Migrate,Resin,我有一个已经在resin上运行的web项目,但我想在tomcat服务器上部署整个项目(即,我想迁移服务器) 我认为只有web.xml应该更改,所以我尝试了以下更改 我在resin中有web.xml作为 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:resin="urn:java:com.caucho.resin" xmlns:gemini="urn:java:com.techempower.gem

我有一个已经在resin上运行的web项目,但我想在tomcat服务器上部署整个项目(即,我想迁移服务器)

我认为只有web.xml应该更改,所以我尝试了以下更改

我在resin中有web.xml作为

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:resin="urn:java:com.caucho.resin"
         xmlns:gemini="urn:java:com.techempower.gemini">
  <multipart-form enable="true" upload-max="50M" />

  <!-- These lines will force assets to be served be resin -->
  <servlet-mapping url-pattern="/css/*" servlet-name="resin-file" />
  <servlet-mapping url-pattern="/js/*" servlet-name="resin-file" />
  <servlet-mapping url-pattern="/images/*" servlet-name="resin-file" />
  <servlet-mapping url-pattern="/html/*" servlet-name="resin-file" />
  <servlet-mapping url-pattern="favicon.ico" servlet-name="resin-file" />

  <servlet-mapping url-pattern="/content/*" servlet-name="resin-file" />

  <!-- Assets located in "/static/" are files that should be cached forever, by
       convention. -->
  <servlet-mapping url-pattern="/static/*" servlet-name="resin-file" />
  <resin:Forward regexp="^/static/([\d|-]+)/(css|js|images|html)/(.*)$" target="/$2/$3">
    <gemini:filter.ExpiresFilter>
      <expirationDelta>31556926000</expirationDelta>
    </gemini:filter.ExpiresFilter>
  </resin:Forward>

  <!-- Disallow Resin 4 from compiling PHP or JSP pages directly. -->
  <mime-mapping extension=".php" mime-type="text/plain" />
  <mime-mapping extension=".jsp" mime-type="text/plain" />
  <mime-mapping extension=".jspf" mime-type="text/plain" />
  <mime-mapping extension=".jspx" mime-type="text/plain" />
  <servlet-mapping url-pattern="*.php" servlet-name="resin-file" />
  <servlet-mapping url-pattern="*.jsp" servlet-name="resin-file" />
  <servlet-mapping url-pattern="*.jspf" servlet-name="resin-file" />
  <servlet-mapping url-pattern="*.jspx" servlet-name="resin-file" />
  <servlet-mapping url-pattern="/WEB-INF/*.jsp" servlet-name="resin-jsp" />
  <servlet-mapping url-pattern="/WEB-INF/*.jspf" servlet-name="resin-jsp" />
  <servlet-mapping url-pattern="/WEB-INF/*.jspx" servlet-name="resin-jspx" />

  <!-- Disallow URL rewriting for sessions.-->
  <session-config enable-url-rewriting="false" />

  <!-- Use UTF-8 for everything. -->
  <character-encoding>UTF-8</character-encoding>

  <!-- Uncomment and modify the directives below to enable network
       configuration, wherein each application instance contacts the
       cluster master to receive its configuration. -->


  <!-- Enable GZIP compression. -->
  <filter filter-name="gzip" filter-class="com.caucho.filters.GzipFilter">
    <init>
      <use-vary>true</use-vary>
    </init>
  </filter>
  <filter-mapping url-pattern='*' filter-name="gzip" />


    <listener>
        <display-name>Cron Job Scheduler Manager</display-name>
        <listener-class>com.leonardo.email.CronJobHandler</listener-class>
    </listener>

    <servlet>
        <servlet-name>PrintActionItems</servlet-name>
        <servlet-class>com.leonardo.PrintActionItems</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>PrintActionItems</servlet-name>
        <url-pattern>/PrintActionItems</url-pattern>
    </servlet-mapping>

    <servlet>
        <servlet-name>DeleteActionItemFile</servlet-name>
        <servlet-class>com.leonardo.DeleteActionItemFile</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>DeleteActionItemFile</servlet-name>
        <url-pattern>/DeleteActionItemFile</url-pattern>
    </servlet-mapping>


</web-app>
这是迁移到tomcat服务器的正确方法吗?
如果是,则只需更改web.xml? 那么tomcat的web.xml中应该包含什么呢

请指教
谢谢

在Tomcat中,conf目录中有一个web.xml,但是如果您只部署一个应用程序,则不需要更改它。默认情况下,conf/web.xml已经设置为执行JSP/servlet

大多数web应用程序遵循Servlet JSR,可以在任何Java容器(如Jetty、Resin或Tomcat等)上运行,您不需要修改项目


如果您将WAR文件或项目放在webapps目录中,它将在启动时部署。您可以使用ROOT,但我的应用程序使用单独的路径。然后URL看起来像
http://localhost:8080/mywebapp/

问题:为什么要切换到Tomcat?只是好奇……我在centos上运行树脂服务器,有时它的行为会有所不同,所以我想切换到Tomcat。不同的意思是什么?如果您能提供更多详细信息,我将不胜感激。您可能需要做的一件事是删除对
com.caucho.filters.GzipFilter
的引用。我相信这是Resin的一部分,而不是你的webapp。我忘了提到我想更改web项目的web.xml,即。,webapps\ROOT\WEB-INF\WEB.xml项目WEB.xml始终覆盖服务器conf/WEB.xml,因此更改服务器conf/WEB.xml是没有用的,但我希望项目WEB.xml使其在Tomcat上运行注意:我没有ROOT.war我始终将根文件夹复制到服务器的webapps文件夹
<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:resin="urn:java:com.caucho.resin"
         xmlns:gemini="urn:java:com.techempower.gemini">
  <multipart-form enable="true" upload-max="50M" />

 <servlet-mapping>
  <servlet-name>default</servlet-name><url-pattern>/css/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
  <servlet-name>default</servlet-name><url-pattern>/js/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
  <servlet-name>default</servlet-name><url-pattern>/html/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
  <servlet-name>default</servlet-name><url-pattern>/images/*</url-pattern>
</servlet-mapping>


  <servlet-mapping>
  <servlet-name>default</servlet-name><url-pattern>/static/*</url-pattern>
</servlet-mapping>


<servlet-mapping>
  <servlet-name>default</servlet-name><url-pattern>*.php</url-pattern>
</servlet-mapping>
 <servlet-mapping>
  <servlet-name>default</servlet-name><url-pattern>*.jsp</url-pattern>
</servlet-mapping>
 <servlet-mapping>
  <servlet-name>default</servlet-name><url-pattern>*.jspf</url-pattern>
</servlet-mapping>
 <servlet-mapping>
  <servlet-name>default</servlet-name><url-pattern>*.jspx</url-pattern>
</servlet-mapping>
 <servlet-mapping>
  <servlet-name>default</servlet-name><url-pattern>/WEB-INF/*</url-pattern>
</servlet-mapping>


  <!-- Disallow URL rewriting for sessions.-->
  <session-config enable-url-rewriting="false" />

  <!-- Use UTF-8 for everything. -->
  <character-encoding>UTF-8</character-encoding>


  <!-- Enable GZIP compression. -->
  <filter filter-name="gzip" filter-class="com.caucho.filters.GzipFilter">
    <init>
      <use-vary>true</use-vary>
    </init>
  </filter>

    <listener>
        <display-name>Cron Job Scheduler Manager</display-name>
        <listener-class>com.leonardo.email.CronJobHandler</listener-class>
    </listener>

    <servlet>
        <servlet-name>PrintActionItems</servlet-name>
        <servlet-class>com.leonardo.PrintActionItems</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>PrintActionItems</servlet-name>
        <url-pattern>/PrintActionItems</url-pattern>
    </servlet-mapping>

    <servlet>
        <servlet-name>DeleteActionItemFile</servlet-name>
        <servlet-class>com.leonardo.DeleteActionItemFile</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>DeleteActionItemFile</servlet-name>
        <url-pattern>/DeleteActionItemFile</url-pattern>
    </servlet-mapping>

</web-app>
org.apache.tomcat.util.modeler.Registry registerComponent
SEVERE: Null component Catalina:type=JspMonitor,name=jsp,WebModule=//localhost/,
J2EEApplication=none,J2EEServer=none
org.apache.catalina.startup.HostConfig deployDirectory
SEVERE: Error deploying web application directory ROOT
java.lang.NullPointerException