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