可以使用带有tomcat的cxf进行https服务(没有jetty)

时间:2014-06-01 10:49:00

标签: tomcat https cxf embedded-jetty

是否可以使用https协议在tomcat上部署apache cxf-rs? 我看到许多使用嵌入式码头的例子,但我不想要它。

我应该在这里添加更多详细信息,我不知道如何准确地执行此操作。我有以下配置:在web.xml中

<servlet>
    <servlet-name>CXFServlet</servlet-name>
    <display-name>CXF Servlet</display-name>
    <servlet-class>
        org.apache.cxf.transport.servlet.CXFServlet
    </servlet-class>
    <load-on-startup>2</load-on-startup>
</servlet>

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

在cxf-config.xml中:

<import resource="classpath:META-INF/cxf/cxf.xml"/>
<import resource="classpath:META-INF/cxf/cxf-servlet.xml"/>

<bean id="smsserviceclass" class="com.isc.sg.services.rest.SmsGatewayService"/>
<jaxrs:server id="smsservice" address="https://localhost:8443/sg/smsservice">
    <jaxrs:serviceBeans>
        <ref bean="smsserviceclass"/>
    </jaxrs:serviceBeans>
</jaxrs:server> 

并且在server.xml中,在端口8443上启用了SSL,但是我得到了以下异常: java.io.IOException:端口8443的协议不匹配:引擎的协议是http,url协议是https

1 个答案:

答案 0 :(得分:1)

jaxrs:server 元素不是在地址属性中设置https网址,而是包含一个名为publishedEndpointURL的属性,您可以在其中配置服务的网址。指定您可以将Tomcat配置为使用HTTPS或将Tomcat放在Apache服务器之后。

您可以找到更多信息herehere,请注意此链接指的是WS技术,但在此过程中使用了CXF以及 jaxrs:server 和< strong> jaxws:endpoint 具有几乎相同的属性。