Problemas para criar Web Services com Axis2 + TomCat 6 + Eclipse Galileo

Bom dia pessoal,

Estou estudando o livro “Web Services SOAP em JAVA”, mas estou tendo problemas.

Criei o projeto CalculadorWS.
Pacote org.ws.calc
Classe Calculadora.java

[code]package org.ws.calc;

public class Calculadora {

// Efetua a soma de dois números
public double Soma(double i, double j){
    double resultadoSoma;
    resultadoSoma = i + j;
    return resultadoSoma;
}

// Efetua a subtração de dois números
public double Subtracao(double i, double j){
    double resultadoSubtracao;
    resultadoSubtracao = i - j;
    return resultadoSubtracao;
}

// Efetua a multiplicação de dois números
public double Multiplicacao(double i, double j){
    double resultadoMultiplicacao;
    resultadoMultiplicacao = i * j;
    return resultadoMultiplicacao;
}

// Efetua a divisao de dois números
public double Divisao(double i, double j){
    double resultadoDivisao;
    resultadoDivisao = i / j;
    return resultadoDivisao;
}

}
[/code]

Criei o services.xml dentro da pasta resources/META-INF

<?xml version="1.0" encoding="UTF-8"?> <service name="Calculadora" scope="application" targetNamespace="http://org.ws/"> <description> Calculadora Service </description> <messageReceivers> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" Class="org.apache.axix2.rpc.receivers.RPCInOnlyMessageReceiver"/> <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" Class="org.apache.axix2.rpc.receivers.RPCMessageReceiver"/> </messageReceivers> <schema schemaNameSpace="http://org.ws/xsd"/> <parameter name="ServiceClass">org.ws.calc.Calculadora</parameter> </service>

Criei o build.xml na raíz do projeto

<?xml version="1.0" encoding="UTF-8"?> <project name="Calculadora" basedir="."> <property environment="env"/> <property name="AXIS2_HOME" value="C:\axis2-1.5.1"/> <property name="build.dir" value="build"/> <path id="axis2.classpath"> <fileset dir="${AXIS2_HOME}/lib"> <include name="*.jar"/> </fileset> </path> <target name="compile.service"> <mkdir dir="${build.dir}"/> <mkdir dir="${build.dir}/classes"/> <javac debug="on" fork="true" destdir="${build.dir}/classes" srcdir="${basedir}/src" Classpathref="axis2.classpath"> </javac> </target> <target name="generate.wsdl" depends="compile.service"> <taskdef name="java2wsdl" Classname="org.apache.ws.java2wsdl.Java2WSDLTask" Classpathref="axis2.classpath"/> <java2wsdl className="org.ws.calc.Calculadora" outputLocation="${build.dir}" targetNamespace="http://org.ws/" schemaTargetNamespace="http://org.ws/xsd"> <classpath> <pathelement path="${axis2.classpath}"/> <pathelement location="${build.dir}/classes"/> </classpath> </java2wsdl> </target> <target name="generate.service" depends="compile.service"> <copy toDir="${build.dir}/classes" failonerror="false"> <fileset dir="${basedir}/resources"> <include name="**/*.xml"/> </fileset> </copy> <!-- Nesta parte devemos fornecer o nome do arquivo aar --> <jar destfile="${build.dir}/Calculadora.aar"> <fileset excludes="**/Test.class" dir="${build.dir}/classes"/> </jar> </target> <target name="clean"> <delete dir="${build.dir}"/> </target> </project>

Após rodar o build.xml é gerado a pasta build no meu projeto e dentro da pasta estão os arquivos Calculadora.aar e Calculadora.wsdl.
O livro pede para copiar o arquivo Calculadora.aar para o diretório C:\Tomcat 6.0\webapps\axis2\WEB-INF\services

Aí dou start no TOMCAT e abro no internet explorer o link http://localhost:8080/axis2/services/listServices

Aí aparece no browser a pagina do Apache:

Back Home | Refresh

Available services


Faulty Services
C:\Tomcat 6.0\webapps\axis2\WEB-INF\services\Calculadora.aar

Aí clico no link acima e aparece o erro:

This Web axisService has deployment faults Error: org.apache.axis2.deployment.DeploymentException at org.apache.axis2.deployment.repository.util.ArchiveReader.processServiceGroup(ArchiveReader.java:150) at org.apache.axis2.deployment.ServiceDeployer.deploy(ServiceDeployer.java:81) at org.apache.axis2.deployment.repository.util.DeploymentFileData.deploy(DeploymentFileData.java:136) at org.apache.axis2.deployment.DeploymentEngine.doDeploy(DeploymentEngine.java:659) at org.apache.axis2.deployment.repository.util.WSInfoList.update(WSInfoList.java:144) at org.apache.axis2.deployment.RepositoryListener.update(RepositoryListener.java:337) at org.apache.axis2.deployment.RepositoryListener.checkServices(RepositoryListener.java:241) at org.apache.axis2.deployment.DeploymentEngine.loadServices(DeploymentEngine.java:131) at org.apache.axis2.deployment.WarBasedAxisConfigurator.loadServices(WarBasedAxisConfigurator.java:284) at org.apache.axis2.context.ConfigurationContextFactory.createConfigurationContext(ConfigurationContextFactory.java:95) at org.apache.axis2.transport.http.AxisServlet.initConfigContext(AxisServlet.java:525) at org.apache.axis2.transport.http.AxisServlet.init(AxisServlet.java:443) 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:4350) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4659) 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.start(HostConfig.java:1277) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053) at org.apache.catalina.core.StandardHost.start(StandardHost.java:785) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445) at org.apache.catalina.core.StandardService.start(StandardService.java:519) at org.apache.catalina.core.StandardServer.start(StandardServer.java:710) at org.apache.catalina.startup.Catalina.start(Catalina.java:581) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) Caused by: java.lang.NullPointerException at org.apache.axis2.deployment.DescriptionBuilder.loadMessageReceiver(DescriptionBuilder.java:184) at org.apache.axis2.deployment.DescriptionBuilder.processMessageReceivers(DescriptionBuilder.java:171) at org.apache.axis2.deployment.ServiceBuilder.populateService(ServiceBuilder.java:275) at org.apache.axis2.deployment.repository.util.ArchiveReader.buildServiceGroup(ArchiveReader.java:101) at org.apache.axis2.deployment.repository.util.ArchiveReader.processServiceGroup(ArchiveReader.java:143) ... 37 more

Segundo o livro, deveria aparecer o nome do meu serviço(Calculadora) e os seus métodos: somar, subtração, divisão e multiplicação.

Por favor,

vocês poderiam ajudar a resolver esse problema?

Muito obrigado

Aqui tem um material bom.

Aqui tem outros.

Olá pessoal. Também estou com o mesmo problema com o Axis2+ TomCat 6 + Eclipse Galileo… Se alguém encontrou uma solução, posta ai por favor! Thanks :slight_smile: