axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stadelmann Josef" <josef.stadelm...@axa-winterthur.ch>
Subject AW: [axis2-1.6.1] jax-ws 2.0 and JavaClassToDBCConverter of axis2-1.6.1
Date Thu, 07 Jun 2012 09:25:38 GMT
Martin,

 

Thank you.

My FileNotFoundException Wrapper starts with

 

@Webfault(name="FileNotFoundExceptionWs", targetNamespace="/ch.axa.spezpla.fs1/", faultBean="")

The implementation of WebFault under JDK 6.0 takes 3 arguments see above, while WebFault under
JDK 7.0 takes 4 arguments

@Webfault(name="FileNotFoundExceptionWs", targetNamespace="/ch.axa.spezpla.fs1/", faultBean="",
 messageName="")

 

It compiles under 6.0 because WebFault is in fact an interface only delivered with JDK.60
and it has a implementation somewhere in JDK 6.0 as well using only 3 arguments.

 

The guilty in my mind is axis2's JavaClassToDBCConverter class which tries to set the messageName
attribute through the WebFault Interface. It fails as shown below.

 

Martin, I never used endorsements myself unless exactly told how to do it. For me endorsements
are something like a patch and not a midterm robust solution.

I do not understand why I a shall package my FileNotFoundExceptionWs class belonging to my
FileService WebService up/download solution into a jar and then put that jar into the jre/lib/endorsement
directory of my JDK6.0 environment. I would assume, as read on several places, having exact
the same problem, Google shows 1010 entries for this bug, that I have to seek the JDK7.0 jar
file which implements the WebFault class and place this JDK7.0 jar file into jre/lib/endorsed
directory.

 

NOW - I am confused, and hope you can help me , can you clarify this.

 

I expect from endorsement that Axis2's JavaClassToDBCConverter finds the proper class in a
jar file in the endorsement directory.

 

Josef 

 

 

 

Von: Martin Gainty [mailto:mgainty@hotmail.com] 
Gesendet: Mittwoch, 6. Juni 2012 19:43
An: java-user@axis.apache.org
Betreff: RE: [axis2-1.6.1] jax-ws 2.0 and JavaClassToDBCConverter of axis2-1.6.1

 

Hi Josef

If you could drop your modified FileNotFoundExceptionWs.jar into endorsed dir you can startup
Tomcat with -Djava.endorsed.dirs=C:\Java\jdk1.6.0_01\jre\lib\endorsed
e.g
$CATALINA_HOME/bin/java -Djava.endorsed.dirs=/jdk1.6.0_01/jre/lib/endorsed ........ jar bootstrap.jar

does this help?
Martin 
______________________________________________ 
Verzicht und Vertraulichkeitanmerkung/Note de déni et de confidentialité

Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene Empfaenger sein, so bitten
wir hoeflich um eine Mitteilung. Jede unbefugte Weiterleitung oder Fertigung einer Kopie ist
unzulaessig. Diese Nachricht dient lediglich dem Austausch von Informationen und entfaltet
keine rechtliche Bindungswirkung. Aufgrund der leichten Manipulierbarkeit von E-Mails koennen
wir keine Haftung fuer den Inhalt uebernehmen.

Ce message est confidentiel et peut être privilégié. Si vous n'êtes pas le destinataire
prévu, nous te demandons avec bonté que pour satisfaire informez l'expéditeur. N'importe
quelle diffusion non autorisée ou la copie de ceci est interdite. Ce message sert à l'information
seulement et n'aura pas n'importe quel effet légalement obligatoire. Étant donné que les
email peuvent facilement être sujets à la manipulation, nous ne pouvons accepter aucune
responsabilité pour le contenu fourni.



 

________________________________

Subject: [axis2-1.6.1] jax-ws 2.0 and JavaClassToDBCConverter of axis2-1.6.1
Date: Wed, 6 Jun 2012 18:09:10 +0200
From: josef.stadelmann@axa-winterthur.ch
To: axis-user@ws.apache.org

@Webfault is an annotation in use since JDK 6.0 ...

I understand that this class needs enhancements over time.

What I do not understand is that 

org.apache.axis2.jaxws.description.builder.converter.JavaClassToDBCConverter

has a method 

    private void attachWebFaultAnnotation(DescriptionBuilderComposite composite) {

        WebFault webFault = (WebFault)ConverterUtils.getAnnotation(

                WebFault.class, serviceClass);

        if (webFault != null) {

            WebFaultAnnot webFaultAnnot = WebFaultAnnot.createWebFaultAnnotImpl();

            webFaultAnnot.setFaultBean(webFault.faultBean());

            webFaultAnnot.setName(webFault.name());

            webFaultAnnot.setTargetNamespace(webFault.targetNamespace());

            webFaultAnnot.setMessageName(webFault.messageName());

            composite.setWebFaultAnnot(webFaultAnnot);

        }

which is a show stoper for an JDK 6.0 dependent environment, because the line in red works
only within a JDK 7.0 environment.

I have developed "FileNotFoundExceptionWs", a Wrapper class using the @Webfault annotation
with 3 arguments, 

and all builds fine. But depoyment of this service does not work because I run (un-endorsed)
on a JDK 6.0 platform.

where the following error is thrown by Axis2-1.6.1 code as seen above.:

[INFO] Deploying JAXWS annotated class ch.axa.spezpla.fs1.MtomFile12PortImpl as a service
- MtomFileService12

[INFO] Exception creating Axis Service : null

java.lang.NoSuchMethodError: javax.xml.ws.WebFault.messageName()Ljava/lang/String;

        at org.apache.axis2.jaxws.description.builder.converter.JavaClassToDBCConverter.attachWebFaultAnnotation(JavaClassToDBCConverter.java:384)

        at org.apache.axis2.jaxws.description.builder.converter.JavaClassToDBCConverter.setTypeTargettedAnnotations(JavaClassToDBCConverter.java:247)

        at org.apache.axis2.jaxws.description.builder.converter.JavaClassToDBCConverter.introspectClass(JavaClassToDBCConverter.java:159)

        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:97)

        at org.apache.axis2.jaxws.description.impl.DescriptionFactoryImpl.createServiceDescription(DescriptionFactoryImpl.java:215)

        at org.apache.axis2.jaxws.description.DescriptionFactory.createAxisService(DescriptionFactory.java:564)

        at org.apache.axis2.jaxws.framework.JAXWSDeployer.createAxisService(JAXWSDeployer.java:257)

        at org.apache.axis2.jaxws.framework.JAXWSDeployer.deployClasses(JAXWSDeployer.java:208)

        at org.apache.axis2.jaxws.framework.JAXWSDeployer.deployServicesInWARClassPath(JAXWSDeployer.java:106)

        at org.apache.axis2.jaxws.framework.JAXWSDeployer.init(JAXWSDeployer.java:78)

        at org.apache.axis2.deployment.DeploymentEngine.initializeDeployers(DeploymentEngine.java:1166)

        at org.apache.axis2.deployment.DeploymentEngine.setConfigContext(DeploymentEngine.java:1155)

        at org.apache.axis2.deployment.WarBasedAxisConfigurator.setConfigContext(WarBasedAxisConfigurator.java:349)

        at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(ConfigurationContextFactory.java:89)

        at org.apache.axis2.transport.http.AxisServlet.initConfigContext(AxisServlet.java:584)

        at org.apache.axis2.transport.http.AxisServlet.init(AxisServlet.java:454)

        at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1173)

        at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:993)

        at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4187)

        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4496)

        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)

        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)

        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546)

        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:905)

        at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:740)

        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:500)

        at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1345)

        at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:303)

        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)

        at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1337)

        at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1601)

        at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610)

        at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1590)

        at java.lang.Thread.run(Thread.java:662)

google for the red line and wonder how many runs into a similar problem.

endorsing helps but shifts the problem arround, and there is no guarantee 

that endorsing missing jar files adds to the robsutness of the environment!

is there a chance to have Tomcat using the same automatic endorsment facility as maven has
when it builds and test and runs error free

org.apache.axis2.jaxws.description.builder.converter.JavaClassToDBCConverter

???

Josef


Mime
View raw message