tomcat - 可以使用带有 tomcat 的 cxf 来提供 https 服务(没有码头)

标签 tomcat https cxf embedded-jetty

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

我应该在这里添加更多细节,我不知 Prop 体怎么做。我有以下配置:在 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 中,SSL 在端口 8443 上启用,但我得到这个异常: java.io.IOException: Protocol mismatch for port 8443: 引擎的协议(protocol)是http,url协议(protocol)是https

最佳答案

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

您可以找到更多信息herehere ,注意这个链接是指WS技术,但是过程中使用了CXF,jaxrs:serverjaxws:endpoint的属性几乎一样。

关于tomcat - 可以使用带有 tomcat 的 cxf 来提供 https 服务(没有码头),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23979079/

相关文章:

Tomcat登录webapp和容器?

django - request.is_secure() 对于 uwsgi 服务器总是返回 false

cxf - 在 Camel-CXF 中将自定义 Soap-Header 设置为 pojo-message

java - Vaadin 7 Project with Maven + Tomcat7 编译报错

java - 使用 Java Servlet 扩展现有的 Web 应用程序

node.js - 使用 .jsk 客户端信任 node.js https?

java - android中的https(无对等证书)问题

cxf - FIQL SearchContext 在注入(inject) @Context 时抛出 NullPointerException

java - 使用 CXF ClientBUilder,如何将后响应参数解码到 Java 类中

java - 我可以在运行时在 tomcat 服务器上添加 <server-mapping>