Конвертировать context.xml из Tomcat в Jetty - PullRequest
4 голосов
/ 08 февраля 2011

у меня есть следующий context.xml в webapp / META-INF /. Этот файл используется tomcat для определения значения, которое будет понятно Spring со свойством

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

Сейчас я пытаюсь развернуть веб-приложение с помощью плагина maven jetty:

    <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 ]

7 голосов
/ 08 февраля 2011

Это должно быть указано в вашем WEB-INF/web.xml, который не зависит от веб-сервера, т. Е. Он будет работать как в tomcat, так и в Jetty:

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

, или вы можете установить его в своем xml-коде:1005 *

<Configure class="org.mortbay.jetty.webapp.WebAppContext">
  ...
  <Set name="initParams">
    <Map>
      <Entry>
        <Item>si.host</Item>
        <Item>super.com</Item>
      </Entry>
    </Map>
  </Set>
</Configure>
2 голосов
/ 08 февраля 2011

Первое спасибо DogBane !!

Я нашел другое решение без необходимости изменять web.xml. Использовать файл web.xml по умолчанию.

Этот файл применяется к веб-приложению до того, как его собственный файл WEB_INF / web.xml

Я предпочитаю это, чем использовать jetty.xml, потому что он менее многословен.

Просто добавьте в раздел конфигурации плагина maven webDefaultXml с путем к файлу ниже:

<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>
...