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 Mon, 11 Jun 2012 13:24:57 GMT
Hi Martin

 

I have found the reason for my problem; 

 

The class WebFaultAnnot is the implementation-class of the interface WebFault.class;

The class WebFaultAnnot from axis2 implements 4 setters and getters to 4 fields.

AND it is therefore required that the interface WebFault.class match this implementation class.

This is for JDK6.0 not the case.

But

This is the case for JDK7.0

 

The interface-class Webfault, delivered with the package package javax.xml.ws from Sun 

delivers operations to access only 3 of the 4 fields with JDK 6.0. 

but with JDK7.0 the Webfault.class delivers operations to access all 4 fields.

 

That is the reason why the statement in Axis2-1.6.1 

webFaultAnnot.setMessageName(webFault.messageName()); 

causes an Exception as shown below, because webFault.messageName() does not exists in the
WebFault interface class delivered with JDK 6.0.

 

Now, which jar file do I have to endorse from JDK 7.0 over JDK 6.0? Which jar file do I have
to bring into ./jre/lib/endorsed? For JAVA, and for Tomcats VM.

My answer: It is the jar file which keeps the Interface WebFault.class.

 

Now - I have only to find the proper name of the jar file to take this hurdle.

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