Mam aplikację w Spring MVC 3. Wykorzystuję Web Service. Jednak, gdy się łączę to otrzymuję komunikat błędu, że wysyłana wiadomość jest w SOAP 1.1 a wsdl w SOAP 1.2. Jak wymusić generowanie klas za pomocą wsdl2java, albo skonfigurować bean, aby był SOAP 1.2?
pom.xml:
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>${cxf.version}</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<sourceRoot>src/main/java</sourceRoot>
**<soap:soapBinding mtomEnabled="true" version="1.2"/>**
<wsdlOptions>
<wsdlOption>
<wsdl>http://testsp1.adres.com.pl:8080/adres?wsdl</wsdl>
<extraargs>
<extraarg>-impl</extraarg>
</extraargs>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-xjc-ts</artifactId>
<version>2.2.12</version>
</dependency>
</dependencies>
</plugin>
Stworzony bean:
<bean id="auPort" class="pl.services.au.AuPort"
factory-bean="auPortFactory" factory-method="create" />
<bean id="auPortFactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">
<property name="serviceClass" value="pl.services.au.AuPort" />
<property name="address" value="http://testsp1.adres.com.pl:8080/adres" />
<property name="bindingId" value="http://www.w3.org/2003/05/soap/bindings/HTTP/"/>
<property name="outInterceptors">
<list>
<ref bean="saajOut" />
<bean class="org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor">
<constructor-arg>
<map>
<entry key="action" value="UsernameToken" />
<entry key="user" value="user" />
<entry key="passwordType" value="PasswordText" />
<entry key="passwordCallbackRef">
<bean class="pl.partner.service.CallbackHandler">
<property name="user" value="user" />
<property name="password" value="pass999" />
</bean>
</entry>
</map>
</constructor-arg>
</bean>
</list>
</property>
</bean>