Thanks Sagara,

I am very happy about your response. Thanks

What I do not understand is: I have built axis2-1.6.1 from sources using 
maven-2.2.1 and once with maven-3.0.4 always from JDK 1.6.0_22. WITH SUCCESS. 
There was no claim from maven that a certain feature can not be compiled or 
from surefire that a certain feature can not be tested when built against JDK 
1.6.

Or interpreting your words, that Axis2 uses newer versions of both artifacts. 
In case of i.e. a @RequestWrapper#partName introduced starting from JAX-WS 2.2 
[1] will not be available with previous versions[2] of JAX-WS found in JDK1.6.


Please note: There are axis2-1.6.1/samples/jaxws-samples which under this 
circumstances do not run on JDK 1.6.0_30 i.e.  
org.apache.axis2.jaxws.calculator.CalculatorServer.main(CalculatorServer.java:33),
 at least not without a word about moving certain libs into endorsed 
directories.

AND because axis2-1.6.1 code at package 
org.apache.axis2.jaxws.description.builder.converter.JavaMethodsToMDCConverter 
uses a call which dependes on JDK 7.0 and artifacts, or in short, will not run 
on JDK 6.0 without particular artifacts endorsed. Why does maven not produce a 
failure or warning that the full functionality of JAX-WS 2.2 is only available 
when axis2-1.6.1 runs on top of JDK 7.0


    /**
     * This method will drive the attachment of @ResponeWrapper annotation data 
to the
     * <code>MethodDescriptionComposite</code>
     *
     * @param mdc    - <code>MethodDescriptionComposite</code>
     * @param method - <code>Method</code>
     */
    private void attachResponseWrapperAnnotation(MethodDescriptionComposite 
mdc, Method
            method) {
        ResponseWrapper responseWrapper = 
(ResponseWrapper)ConverterUtils.getAnnotation(
                ResponseWrapper.class, method);
        if (responseWrapper != null) {
            ResponseWrapperAnnot rwAnnot = 
ResponseWrapperAnnot.createResponseWrapperAnnotImpl();
            rwAnnot.setClassName(responseWrapper.className());
            rwAnnot.setLocalName(responseWrapper.localName());
            rwAnnot.setTargetNamespace(responseWrapper.targetNamespace());
            rwAnnot.setPartName(responseWrapper.partName());
            mdc.setResponseWrapperAnnot(rwAnnot);
        }
    }

What I do not understand is that axis2-1.6.1 sources can compile against JDK 
1.6.0 where as .partName is clearly not an artifact delivered with JDK 1.6.0 
and/or dependent artifacs; I am not a Java Expert and have no explanation for 
that. Maven regulates so many dependecies; why not such a dependency; at least 
I would expect one word of caution in the SAMPLE README file for i.e. the 
Calculator Sample, stating that @Addressing or certain other known @Annotations 
are not working when used by Axis2 with JDK 1.6.0

After all: In short and in my mind, please correct if I am wrong "@Addressing" 
is only supported with JDK 1.7 when used in a JAX-WS annotaion.

Josef



-----Ursprüngliche Nachricht-----
Von: Sagara Gunathunga [mailto:sagara.gunathu...@gmail.com] 
Gesendet: Montag, 9. April 2012 06:44
An: java-user@axis.apache.org
Betreff: Re: [axis2-1.6.1] RequestWrapper.partName() not supported on JDK 1.6.0 
but used by JAX-WS

This is not a Axis2 issue instead JDK 1.6 related JAX-WS issue, JDK 6
shipped JAXB 2.0 and JAX-WS 2.0 as a part of JDK but Axis2 uses newer
versions of both artifacts. In your case @RequestWrapper#partName
introduced starting from JAX-WS 2.2 [1] and not available on previous
versions[2].

It is recommended to use one of a endorsed mechanisms mentioned here
[3] [4] to solve those issues. For Axis2 you can easily find artifacts
that needed to be endorsed within the /lob/endorsed/ directory of
binary distribution.

[1] -  http://docs.oracle.com/javase/6/docs/api/javax/xml/ws/RequestWrapper.html
[2] -  
http://docs.oracle.com/javase/7/docs/api/javax/xml/ws/RequestWrapper.html#partName%28%29
[2] -  
http://weblogs.java.net/blog/ramapulavarthi/archive/2007/01/problems_using.html
[3] -  http://weblogs.java.net/blog/vivekp/archive/2007/01/running_jaxws_2.html

Thanks !

On Thu, Apr 5, 2012 at 10:17 PM, Stadelmann Josef
<josef.stadelm...@axa-winterthur.ch> wrote:
> [exec:exec]
>
> Starting Server
>
> Exception in thread "main" java.lang.NoSuchMethodError:
> javax.xml.ws.RequestWrapper.partName()Ljava/lang/String;
>
>         at
> org.apache.axis2.jaxws.description.builder.converter.JavaMethodsToMDCConverter.attachRequestWrapperAnnotation(JavaMethodsToMDCConverter.java:203)
>
>         at
> org.apache.axis2.jaxws.description.builder.converter.JavaMethodsToMDCConverter.convertMethods(JavaMethodsToMDCConverter.java:85)
>
>         at
> org.apache.axis2.jaxws.description.builder.converter.JavaClassToDBCConverter.introspectClass(JavaClassToDBCConverter.java:193)
>
>         at
> org.apache.axis2.jaxws.description.builder.converter.JavaClassToDBCConverter.buildDBC(JavaClassToDBCConverter.java:141)
>
>         at
> org.apache.axis2.jaxws.description.builder.converter.JavaClassToDBCConverter.produceDBC(JavaClassToDBCConverter.java:120)
>
>         at
> org.apache.axis2.jaxws.description.impl.DescriptionFactoryImpl.createServiceDescription(DescriptionFactoryImpl.java:215)
>
>         at
> org.apache.axis2.jaxws.description.impl.DescriptionFactoryImpl.createServiceDescription(DescriptionFactoryImpl.java:206)
>
>         at
> org.apache.axis2.jaxws.description.DescriptionFactory.createServiceDescription(DescriptionFactory.java:542)
>
>         at
> org.apache.axis2.jaxws.server.endpoint.EndpointImpl.initialize(EndpointImpl.java:85)
>
>         at
> org.apache.axis2.jaxws.server.endpoint.EndpointImpl.<init>(EndpointImpl.java:67)
>
>         at
> org.apache.axis2.jaxws.spi.Provider.createAndPublishEndpoint(Provider.java:56)
>
>         at
> org.apache.axis2.jaxws.spi.Provider.createAndPublishEndpoint(Provider.java:52)
>
>         at javax.xml.ws.Endpoint.publish(Endpoint.java:170)
>
>         at
> org.apache.axis2.jaxws.calculator.CalculatorServer.<init>(CalculatorServer.java:29)
>
>         at
> org.apache.axis2.jaxws.calculator.CalculatorServer.main(CalculatorServer.java:33)
>
> ------------------------------------------------------------------------
>
> BUILD FAILURE
>
> call it a feature, but the axis2-1.6.1/samples/jaxws-calculator project runs
> only with JDK 1.7.0 !!!
>
> javax.xml.ws.RequestWrapper.partName()
>
> can only run if you are on a JDK 1.7.0 platform as .partName() method does
> not exist with the JDK 1.6.0
>
> So that is one more time why it should be said in the release notes that
>
> JAX-WS 2.0 is not fully supported on axis2-1.6.1 to run on a JDK 1.6.0
> platform.
>
> my thoughts,
>
> Josef



-- 
Sagara Gunathunga

Blog      - http://ssagara.blogspot.com
Web      - http://people.apache.org/~sagara/
LinkedIn - http://www.linkedin.com/in/ssagara

---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscr...@axis.apache.org
For additional commands, e-mail: java-user-h...@axis.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscr...@axis.apache.org
For additional commands, e-mail: java-user-h...@axis.apache.org

Reply via email to