Saudações!
Recentemente resolvi dar uma testada no CXF para webservices, fiz o “hello world” descrito no respectivo site e no eclipse funcionou tranquilamente.
Porém quando rodo pela linha de comando obtenho o seguinte erro:
Exception in thread "main" org.apache.cxf.service.factory.ServiceConstructionException: Could not resolve a binding for http://schemas.xmlsoap.org/soap/
at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createBindingInfo(AbstractWSDLBasedEndpointFactory.java:310)
at org.apache.cxf.jaxws.JaxWsServerFactoryBean.createBindingInfo(JaxWsServerFactoryBean.java:150)
at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpointInfo(AbstractWSDLBasedEndpointFactory.java:178)
at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:102)
at org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java:114)
at org.apache.cxf.jaxws.JaxWsServerFactoryBean.create(JaxWsServerFactoryBean.java:160)
at ws.Server.setup(Server.java:17)
at ws.Server.main(Server.java:21)
Caused by: org.apache.cxf.BusException: No binding factory for namespace http://schemas.xmlsoap.org/soap/ registered.
at org.apache.cxf.binding.BindingFactoryManagerImpl.getBindingFactory(BindingFactoryManagerImpl.java:91)
at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createBindingInfo(AbstractWSDLBasedEndpointFactory.java:300)
... 7 more
Dei uma pesquisada e aparentemente algumas pessoas andam tendo o mesmo problema.
Aparentemente está tudo ok com as dependências (gerei o jar com mvn assembly:assembly) e os xml’s necessarios estão todos devidamente colocados no META-INF.
Meu pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>test</groupId>
<artifactId>testws</artifactId>
<version>0.0.1-SNAPSHOT</version>
<repositories>
<!-- for jaxb-impl -->
<repository>
<id>java.net</id>
<url>http://download.java.net/maven/1/</url>
<layout>legacy</layout>
</repository>
</repositories>
<properties>
<cxf.version>2.1</cxf.version>
</properties>
<dependencies>
Idênticas a [url=http://cwiki.apache.org/CXF20DOC/building-your-cxf-project-with-maven.html]essas[/url]
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>ws.Server</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>attached</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Fonte: HelloWorld.
Se alguém tiver uma pista, agradeço!
EDIT: Só pra constar, quando coloco um test case criando o server e em seguida um client que faz uma chamada o test case roda sem problemas. A segunda linha do log rodando pelo main é:
INFO: No cxf.xml configuration file detected, relying on defaults.
Eu copiei este arquivo de META-INF/cfx/cfx.xml direto pra raiz de META-INF e nada.