我有一个已经在树脂上运行的web项目,但我想在tomcat服务器上部署整个项目(即,我想迁移服务器)。
我认为应该只更改web.xml,所以我尝试了以下更改
我有树脂中的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
我将其更改如下:
<?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>但是,在运行tomcat时,它会出现以下错误
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这是迁移到tomcat服务器的正确方式吗?
如果是这样,是否只需要更改web.xml?那么tomcat的web.xml中应该包含什么呢?
请指教,谢谢
发布于 2014-01-07 20:48:46
在Tomcat中,conf目录中有一个web.xml,但是如果您只部署一个应用程序,则不需要更改它。默认情况下,已经将conf/web.xml设置为执行JSP /servlet。
大多数web应用程序遵循Servlet JSR,可以在任何Java容器上运行,如Jetty、Resin或Tomcat等,您不需要修改项目。
如果您将一个WAR文件或您的项目放在webapps目录中,它将在启动时部署。您可以使用ROOT,但我对我的应用程序使用单独的路径。然后,URL将看起来像http://localhost:8080/mywebapp/。
https://stackoverflow.com/questions/20971187
复制相似问题