Apache CXF JaxWsServerFactoryBeanをコンソールモードで使用する場合(Javaコマンドライン)でサーバーを起動してみてください)、次のような例外が発生します。
Caused by: Java.io.IOException: Cannot find any registered HttpDestinationFactory from the Bus.
at org.Apache.cxf.transport.http.HTTPTransportFactory.getDestination(HTTPTransportFactory.Java:295)
at org.Apache.cxf.binding.soap.SoapTransportFactory.getDestination(SoapTransportFactory.Java:143)
at org.Apache.cxf.endpoint.ServerImpl.initDestination(ServerImpl.Java:93)
at org.Apache.cxf.endpoint.ServerImpl.<init>(ServerImpl.Java:72)
at org.Apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.Java:160)
同じサービス実装がSpring経由でTomcatで使用される場合、機能します。
<jaxws:endpoint id="abc" implementor="com.AbcServicePortTypeImpl" address="/abc">
Maven pom.xmlにcxf-rt-transports-http-jetty jarを含めると、問題が解決します。
<dependency>
<groupId>org.Apache.cxf</groupId>
<artifactId>cxf-rt-transports-http-jetty</artifactId>
<version>2.7.6</version>
</dependency>
たとえば、以下の設定があり、アドレスにhttpが追加されて定義されている場合、これは設定されたCXFServletに対する相対URLではありませんが、上記のエラーが発生します。
<jaxrs:server id="helloRestService" address="http://...">
<jaxrs:serviceBeans>
<ref bean="helloService" />
</jaxrs:serviceBeans>
</jaxrs:server>
解決策は、http/httpsをアドレスに追加せずに、単に相対URLに言及することです。
同じ問題がありました。そして、Googleのものはどれも意味がありませんでした。私の場合、Springコンテキストファイルに次のものが欠けていることがわかりました。
<import resource="classpath:META-INF/cxf/cxf.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
CSV 2.7.15で動作する別のソリューション:Bus
を作成するときに、拡張機能を登録します。
ServletDestinationFactory destinationFactory = new ServletDestinationFactory();
bus.setExtension(destinationFactory, HttpDestinationFactory.class);
次を試してください、それは私のために働いた-
<dependency>
<groupId>org.Apache.cxf</groupId>
<artifactId>cxf-rt-transports-http-jetty</artifactId>
<version>3.2.5</version>
<exclusions>
<exclusion>
<groupId>org.Eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
</exclusion>
<exclusion>
<groupId>org.Eclipse.jetty</groupId>
<artifactId>jetty-util</artifactId>
</exclusion>
<exclusion>
<groupId>org.Eclipse.jetty</groupId>
<artifactId>jetty-io</artifactId>
</exclusion>
<exclusion>
<groupId>org.Eclipse.jetty</groupId>
<artifactId>jetty-security</artifactId>
</exclusion>
<exclusion>
<groupId>org.Eclipse.jetty</groupId>
<artifactId>jetty-continuation</artifactId>
</exclusion>
<exclusion>
<groupId>org.Eclipse.jetty</groupId>
<artifactId>jetty-http</artifactId>
</exclusion>
</exclusions>
</dependency>