Martin, thanks a lot!

You mean I must use pojo + services.xml for Web seivices like a
quickstart[1]?
In my example[2], my service classes use only JAX-WS annotations like
java_first_jaxws example[3].

And in my understanding, it seems this issue is caused from hard-corded
with SOAP 1.1 binding.

In my example case, you should get a wsdl generated by axis2 runtime if you
access '
http://localhost:8080/axis2-jaxws-soap12-demo-server/services/HelloWorldSoap12?wsdl
'.

Axis2 uses wsgen(included JDK) to generate the requested wsdl.
https://github.com/apache/axis2-java/blob/v1.7.3/modules/metadata/src/org/apache/axis2/jaxws/description/builder/JAXWSRIWSDLGenerator.java#L183-L184

and, however, initialize() set binding as SOAP 1.1 regardless of the
service classess binding annotation.
https://github.com/apache/axis2-java/blob/v1.7.3/modules/metadata/src/org/apache/axis2/jaxws/description/builder/JAXWSRIWSDLGenerator.java#L389

so, wsgen arguments will set for SOAP 1.1.
https://github.com/apache/axis2-java/blob/v1.7.3/modules/metadata/src/org/apache/axis2/jaxws/description/builder/JAXWSRIWSDLGenerator.java#L208-L215

You must set extra arguments like extension, wsdl:Xsoap1.2 If you want to
use wsgen for SOAP 1.2. so, wsgen will complain about it.
https://github.com/emag/axis2-jaxws-soap12-demo#error-log

Can I change this behavior? Thanks.

[1]
https://github.com/apache/axis2-java/tree/v1.7.3/modules/samples/quickstart
[2] https://github.com/emag/axis2-jaxws-soap12-demo
[3]
https://github.com/apache/axis2-java/tree/v1.7.3/modules/samples/java_first_jaxws

On Fri, Jun 17, 2016 at 12:48 AM Martin Gainty <mgai...@hotmail.com> wrote:

>
>
>
> ------------------------------
> From: lanabe.lan...@gmail.com
> Date: Thu, 16 Jun 2016 13:37:23 +0000
> Subject: Re: Can't use JAX-WS + SOAP 1.2 ?
>
> To: java-user@axis.apache.org
>
> Thank you for your reply!
>
> I changed these parameters to like the below in axis2.xml, but got the
> same result... Any idea?
>
> ```
>  <parameter name="disableREST" locked="true">true</parameter> <!-- false
> to true -->
>  <parameter name="disableSOAP12" locked="true">false</parameter>
>  <parameter name="disableSOAP11" locked="true">true</parameter> <!-- added
> -->
> ```
>
> On Thu, Jun 16, 2016 at 9:33 PM Martin Gainty <mgai...@hotmail.com> wrote:
>
>
>
>
> ------------------------------
> From: lanabe.lan...@gmail.com
> Date: Thu, 16 Jun 2016 10:09:07 +0000
> Subject: Can't use JAX-WS + SOAP 1.2 ?
> To: java-user@axis.apache.org
>
>
> Hi, I'm new to here.
>
> I think Axis2 supports JAX-WS + SOAP 1.2, but apparently the generated
> wsdl accessing 'http://some-domain/path/to/<servicename>?wsdl' is always
> treated as SOAP 1.1 though the service  class added
> @BindingType(SOAPBinding.SOAP12HTTP_BINDING).
>
> the related code is here:
>
> https://github.com/apache/axis2-java/blob/v1.7.3/modules/metadata/src/org/apache/axis2/jaxws/description/builder/JAXWSRIWSDLGenerator.java#L389
>
> And I've created a simple reproducer. Am I missing something?
> https://github.com/emag/axis2-jaxws-soap12-demo
>
> MG>your client code:
> public class Client {
>
>     public String invokeSayHello(String text) {
>         HelloWorld_Service service = new HelloWorld_Service();
>
> MG>create a valid JAX-WS service using YOUR parameters populated into QName
>
> MG>javax.xml.ws.Service service  = Service.create(new QName(
>             "http://org/apache/axis2/jaxws/test/OMELEMENT";,
> "OMElementService"));
>
> MG>programatically add SOAP1.2 port using SOAP12HTTP_BINDING parms to your
> JAXWS service:
>
> MG>service.addPort( new QName(
>             "http://org/apache/axis2/jaxws/test/OMELEMENT";,
> "OMElementPort"), javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_BINDING,
> "
> http://localhost:6060/axis2/services/OMElementProviderService.OMElementProviderPort
> ");
> //tweak above port parameter to YOUR PORT
>
> //grab all the configured ports and print them out
>   MG>java.util.Iterator<javax.xml.namespace.QName> ports =
> service.getPorts();
>   MG>while(ports.hasNext()) {
>    MG>   javax.xml.namespace.QName QNamePort
> port=(javax.xml.namespace.QName)ports.next();
>    MG>     log.debug("port namespaceURI="+port.getNamespaceURI());
>    MG>     log.debug("port localPart="+port.getLocalPart());
>    MG>     log.debug(" port prefix="+port.getPrefix());
>    MG>   }
>
>  HelloWorld stub = service.getHelloWorldPort(); //service was not
> respecting SOAP12HTTP_BINDING
>         return stub.sayHello(text);
>     }
>
> }
>
> MG>reference org.apache.axis2.jaxws.dispatch.OMElementDispatchTest
> MG>do you see SOAP12_HTTP_BINDING Port?
>
>
>

Reply via email to