Classe org.apache.axis.client.Call incorreta

1 resposta
Turbo_Drive

Boa tarde a todos.

Estou tentando rodar esta aplicação com um web service em um servidor Tomcat. O Web service e o Tomcat está funcionando. Eis o código:
import org.apache.axis.client.Service;
import org.apache.axis.client.Call;

public class Cliente {
    public static void main(String[] args) throws Exception {
        // Endereço, local onde encontra-se o Web Service
        String local = "http://localhost:8080/axis/Servico.jws";
        // Criando e configurando o serviço
        Call chame = (Call) new Service().createCall();
        // Configurando o endereço.
        chame.setTargetEndpointAddress(local);
        // Marcando o método a ser chamado.
        chame.setOperationName("soma");
        // Parâmetros da função soma.
        Object[] param = new Object[]{new Integer(2),new Integer(4)};
        // Retorno da Função
        Integer ret = (Integer)chame.invoke(param);
        // Imprime o resultado: ret = 2 + 4.
        System.out.println("Resultado da soma : " + ret);
    }
}
Eis o erro retornado: Compiling 1 source file to C:\Programas\Java\Cliente\build\classes C:\Programas\Java\Cliente\src\Cliente.java:9: cannot access javax.xml.rpc.Call class file for javax.xml.rpc.Call not found Call chame = new Service().createCall();

Tentei procurar a classe javax.xml.rpc.Call aqui no GUJ e no Google, mas não obtive sucesso.
Alguém poderia me informar onde posso arrumar esta classe?

Grato pela atenção.

OBS: Peço desculpas caso esse não seja o fórum correto para este post.

1 Resposta

T

o tópico já tem alguns meses, mas como ninguém respondeu e eu hoje tive o mesmo problema, vou compartilhar o meu resultado para quem fizer futuras pesquisas.

A classe javax.xml.rpc.Call não faz parte da API padrão que vem instalada com o Java. Ela faz parte da API do Axis, e portanto para que o compilador javac à encontre é necessário que a mesma esteja com o caminho definido no CLASSPATH do Sistema Operacional.
Esta classe está no pacote rpc que no final das contas fica dentro de um .jar, mais precisamente em Axis/lib/jaxrpc.jar .

Como trabalho com Linux, configurei as variáveis AXIS_HOME e AXIS_LIB. Depois disso foi só adicionar o AXIS_LIB ao CLASSPATH previamente existente que tudo funcionou.
Veja como ficaram as linhas:

export AXIS_HOME=/home/root/axis export AXIS_LIB=$AXIS_HOME/lib/axis.jar:$AXIS_HOME/lib/jaxrpc.jar:$AXIS_HOME/lib/commons-discovery-0.2.jar:$AXIS_HOME/lib/commons-logging-1.0.4.jar:$AXIS_HOME/lib/saaj.jar:$AXIS_HOME/lib/wsdl4j-1.5.1.jar export CLASSPATH=$JAVA_HOME/lib:$CATALINA_HOME/common/lib/servlet-api.jar:$CATALINA_HOME/common/lib/jsp-api.jar:$AXIS_LIB:$CLASSPATH:.

No Windows defina as duas novas variáveis de sistema e por fim adicione o AXIS_LIB ao final do CLASSPATH, lembrando que no Windows o separador não é o dois-pontos (:slight_smile: mas sim o ponto-e-virgula (:wink: e para especificar uma váriavel usa-se o % no lugar do $.

Criado 18 de julho de 2007
Ultima resposta 9 de jan. de 2008
Respostas 1
Participantes 2