我尝试使用https协议实现一个JAXRS端点。我按照http://cxf.apache.org/docs/secure-jax-rs-services.html#SecureJAX-RSServices-Configuringendpoints的说明进行操作。
我在XML文件中声明了jaxrs:server
端点,该端点取决于httpj:engine-factory
。
日志文件告诉我我的服务已启动并且它正在运行,但如果我尝试连接它,Firefox Web浏览器会告诉我“错误:数据传输中断”(德语:“Fehler:Datenübertragungunterbrochen” )。 Web服务(或JAXRS或CXF)不会抛出错误消息。 Opera只是说它无法连接到服务器。 Wireshark告诉我,客户端尝试重新连接到服务器几次,然后客户端(Web浏览器)似乎放弃了。
我的配置如下:
<httpj:engine-factory id="httpsSettings" bus="cxf">
<httpj:engine port="8545">
<httpj:tlsServerParameters>
<sec:keyManagers keyPassword="...">
<sec:keyStore type="PKCS12" password="..." file="..."/>
</sec:keyManagers>
<sec:trustManagers>
<sec:keyStore type="JKS" password="..." file="..."/>
</sec:trustManagers>
<sec:cipherSuitesFilter>
<sec:include>.*_EXPORT_.*</sec:include>
<sec:include>.*_EXPORT1024_.*</sec:include>
<sec:include>.*_WITH_DES_.*</sec:include>
<sec:include>.*_WITH_NULL_.*</sec:include>
<sec:exclude>.*_DH_anon_.*</sec:exclude>
</sec:cipherSuitesFilter>
<sec:clientAuthentication want="true" required="false"/>
</httpj:tlsServerParameters>
</httpj:engine>
</httpj:engine-factory>
<jaxrs:server id="cdmiSSLService" address="https://localhost:8545/"
depends-on="httpsSettings" beanNames="...">
<jaxrs:inInterceptors>
<ref bean="..."/>
</jaxrs:inInterceptors>
<jaxrs:providers>
<ref bean="..."/>
...
</jaxrs:providers>
<jaxrs:serviceBeans>
<ref bean="..."/>
...
</jaxrs:serviceBeans>
</jaxrs:server>
我应该补充一点,我此时只配置了一个JAXRS端点,如果我将JAXRS端点配置更改为http协议,一切正常,我可以毫无问题地连接到Web服务。 / p>
有人可以帮助我,我可以在这做什么吗?我知道这些信息不多,但目前还没有给我更多信息。请耐心等待,这是我第一次以这种方式实施它。我是初学者。这是一个使用Spring Framework的Maven多模块项目。配置需要通过jaxrs:server
。
非常感谢提前!
答案 0 :(得分:0)