如何在使用servlet传输的cxf端点配置中覆盖/忽略WARFileName

时间:2018-01-04 17:29:33

标签: java servlets apache-camel cxf jbossfuse

我使用servlet传输公开了一个camel cxf webservice。打包的camel应用程序war文件名是samplewebservice-0.0.1-SNAPSHOT.war

我正在使用Jboss fuse 6.3,Jboss EAP 6.4

Web xml配置:

<?xml version="1.0" encoding="UTF-8"?>
<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"
           version="2.5">
    <display-name>ssl-cxf</display-name>
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:META-INF/spring/*.xml</param-value>
    </context-param>

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

  <servlet>
    <servlet-name>CXFServlet</servlet-name>
    <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>CXFServlet</servlet-name>
    <url-pattern>/*</url-pattern>
  </servlet-mapping> 

</web-app>

根据我的应用程序中的配置,端点发布如下:

https://localhost:8443/samplewebservice-0.0.1-SNAPSHOT/authentication?wsdl

阅读文件后:

https://access.redhat.com/documentation/en-us/red_hat_jboss_fuse/6.1/html/deploying_into_a_web_server/DeployCamelWS

根据servlet-mapping / url-pattern我知道url发布如下。

http://Host:Port/WARFileName/URLPattern

我不希望WARFileName包含在已发布的端点URL中。

有没有可能我可以用一些其他模式而不是war文件名覆盖/忽略WARFileName参数?

1 个答案:

答案 0 :(得分:1)

战争文件名通常是上下文路径。如果war文件具有根级别(/),则不需要显式名称。每个实例应该只有一个根应用程序