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:mgai...@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.stadelm...@axa-winterthur.ch
To: axis-u...@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

Reply via email to