将context.xml从Tomcat转换为Jetty

时间:2011-02-08 09:18:57

标签: tomcat jetty

我在webapp / META-INF /中有以下context.xml。 tomcat使用这一个来定义Spring将使用Property

来理解的值
<?xml version="1.0" encoding="UTF-8"?>
<Context>     
<Parameter name="si.host" value="super.com"  override="false"/>   
</Context>

现在我正在尝试使用maven jetty插件部署webapp:

    <plugin>
    <groupId>org.mortbay.jetty</groupId>
    <artifactId>maven-jetty-plugin</artifactId>
    <version>6.1.26</version>
    <configuration>
      <connectors>
        <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
          <port>8080</port>
          <maxIdleTime>60000</maxIdleTime>
        </connector>
      </connectors>
      <jettyEnvXml>${basedir}\src\test\resources\server\jetty\jetty-env.xml</jettyEnvXml>
      <jettyConfig>${basedir}\src\test\resources\server\jetty\jetty.xml</jettyConfig > 
       <contextPath>/myapp</contextPath>
      <webApp>target/myapp.war</webApp>
      <stopKey>foo</stopKey>
      <stopPort>9999</stopPort>
    </configuration>
    <executions>
      <execution>
        <id>start-jetty</id>
        <phase>pre-integration-test</phase>
        <goals>
          <goal>run</goal>
        </goals>
        <configuration>
          <scanIntervalSeconds>0</scanIntervalSeconds>
          <daemon>true</daemon>
        </configuration>
      </execution>
      <execution>
        <id>stop-jetty</id>
        <phase>post-integration-test</phase>
        <goals>
          <goal>stop</goal>
        </goals>
      </execution>
    </executions>        
  </plugin>

如何在jetty.xml文件中添加此参数?
我已经深入研究了他们的文档,这里和谷歌,但没有发现任何明确的 在此先感谢您的帮助。

2 个答案:

答案 0 :(得分:7)

这需要进入你的WEB-INF/web.xml,这是独立于web服务器的,即它可以在tomcat和jetty中运行:

<context-param>
  <param-name>si.host</param-name>
  <param-value>super.com</param-value>
</context-param>

或者你可以在你的jetty xml中设置它:

<Configure class="org.mortbay.jetty.webapp.WebAppContext">
  ...
  <Set name="initParams">
    <Map>
      <Entry>
        <Item>si.host</Item>
        <Item>super.com</Item>
      </Entry>
    </Map>
  </Set>
</Configure>

答案 1 :(得分:2)

首先,谢谢你 DogBane !!

我找到了另一种解决方案,无需修改web.xml 使用Default web.xml文件。

此文件在其自己的WEB_INF / web.xml文件

之前应用于Web应用程序

我比使用jetty.xml更喜欢这个,因为它不那么详细。

只需在webDefaultXml的maven插件配置部分添加以下文件的路径:

<web-app
   xmlns="http://java.sun.com/xml/ns/javaee"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns   /javaee/web-app_2_5.xsd"
   metadata-complete="true"
   version="2.5">

  <description>
    Default web.xml file.
    This file is applied to a Web application before it's own WEB_INF/web.xml file
  </description>

   <context-param>
    <param-name>si.host</param-name>
      <param-value>super.com</param-value>
   </context-param>
</web-app>