A classe EDICliente não consigo compilar pois me dá erro na linha :
EDIServicesService svc = new WebServicesServiceLocator();
EDIServices s = svc.getEDIService ();
Alguém poderia me dar uma direção ou rumo que tenho que seguir …
package webservice;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import javax.activation.DataHandler;
public class EDIServices{
public boolean receberArquivo(DataHandler arquivo, String nome){
// Verificando se o arquivo é nulo
if(arquivo == null)
return false;
try {
// Criando o arquivo de destino
File novoArquivo = new File("c:/" + nome + ".txt");
OutputStream out = new FileOutputStream(novoArquivo);
// Escrevendo os dados do arquivo recebido na saida
arquivo.writeTo(out);
return true;
}catch (Exception ex){
return false;
}
}
}
----
package webservice;
import java.io.File;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
public class EDICliente{
public boolean enviarArquivo(File file){
try{
EDIServicesService svc = new WebServicesServiceLocator();
EDIServices s = svc.getEDIService ();
// Preparando o arquivo pra ser enviado
DataHandler dh = new DataHandler(new FileDataSource(file));
return s.receberArquivo(dh, file.getName());
}catch(Exception ex){
ex.printStackTrace();
return false;
}
}
}
---
package webservice;
import java.io.File;
public class Cliente1 {
public static void main(String args[]){
File arquivo = new File("texto.xml");
EDICliente edi = new EDICliente();
boolean ret = edi.enviarArquivo(arquivo);
if(ret)
System.out.println("Arquivo enviado com sucesso");
else
System.out.println("Falha no envio do arquivo");
}
}
C:\temps\guj\webservice>
C:\temps\guj\webservice>java org.apache.axis.wsdl.Java2WSDL -o wp.wsdl -l"http:/
/localhost:8080/axis/EDIServices" -n"urn:EDIServices" -p"webservice.ws" "urn:EDI
Services" EDIServices
java.lang.NoClassDefFoundError: EDIServices (wrong name: webservice/EDIServices)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at org.apache.axis.utils.ClassUtils$2.run(ClassUtils.java:177)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.axis.utils.ClassUtils.loadClass(ClassUtils.java:160)
at org.apache.axis.utils.ClassUtils.forName(ClassUtils.java:100)
at org.apache.axis.wsdl.fromJava.Emitter.setCls(Emitter.java:2079)
at org.apache.axis.wsdl.Java2WSDL.run(Java2WSDL.java:584)
at org.apache.axis.wsdl.Java2WSDL.main(Java2WSDL.java:682)
C:\temps\guj\webservice>
Cara, você não pode colocar o caminho completo da classe no CLASSPATH, como você está fazendo. Você tem que colocar o diretório onde se encontram os binários. Ex:
Se sua classe se chama webservices.EDIService, em vez de:
C:\>java org.apache.axis.wsdl.Java2WSDL -o wp.wsdl -l"http://localhost:8080/axis
/classes/webservice/EDIServices" -n"urn:EDIServices" -p"ws" "urn:EDIServices" ED
IServices
java.lang.ClassNotFoundException: EDIServices
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.apache.axis.utils.ClassUtils$2.run(ClassUtils.java:187)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.axis.utils.ClassUtils.loadClass(ClassUtils.java:160)
at org.apache.axis.utils.ClassUtils.forName(ClassUtils.java:100)
at org.apache.axis.wsdl.fromJava.Emitter.setCls(Emitter.java:2079)
at org.apache.axis.wsdl.Java2WSDL.run(Java2WSDL.java:584)
at org.apache.axis.wsdl.Java2WSDL.main(Java2WSDL.java:682)
package webservice;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import javax.activation.DataHandler;
public class EDIServices{
public boolean receberArquivo(DataHandler arquivo, String nome){
// Verificando se o arquivo é nulo
if(arquivo == null)
return false;
try {
// Criando o arquivo de destino
File novoArquivo = new File("c:/" + nome + ".txt");
OutputStream out = new FileOutputStream(novoArquivo);
// Escrevendo os dados do arquivo recebido na saida
arquivo.writeTo(out);
return true;
}catch (Exception ex){
return false;
}
}
}
----
Cara, calma! Você parece estar perdidasso.
Uma dica: se não souber muito o que está fazendo, é melhor dar uma estudade nos conceitos base do Java (classpath, compilador etc).
Se você está usando a IDE Eclipse, no seu projeto está configurado qual o diretório dos binários (.java compilados para .class). Esse é o diretório que deve estar no classpath para você gerar as coisas com o Axis, além, claro, das bibliotecas do Axis.
Não configure seu classpath para um milhão de coisas. Você pode configurar uma variável AXIS_LIB (com as bibliotecas do Axs) e fazer assim: