Bom Dia a Todos estou precisando acessar um webservice da receita para enviar arquivos da NFP Nota Fiscal Paulista, nao sou um expert em java aida como muito de voces…
mas ja dei uma lida em muito material altes de perguntar a voces, sobre o que é web service tudo mais …
o enderweço do serviço que preciso acessar é esse…
so que eu to usando u axis para fazer as chamas mas os tutoriais que arrumei sao muito simples mas me deu uma ideia de como fazer…
crie uma classe desse geito so par teste…
mas empaco e na hora de acessar os metodos do servico
import java.rmi.RemoteException;
import javax.xml.rpc.ServiceException;
import org.apache.axis.client.Service;
import org.apache.axis.client.Call;
public class NFPKawakami {
public static void main(String[] args) {
// Endereço, local onde encontra-se o Web Service
String sServico = "https://www.nfp.fazenda.sp.gov.br/ws/arquivocf.asmx";
String sBody = new String();
sBody = "<?xml version=\"1.0\" encoding=\"utf-8\" ?>";
sBody += "<soap12:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap12=\"http://www.w3.org/2003/05/soap-envelope\">";
sBody += "<soap12:Header>";
sBody += "<Autenticacao Usuario=\"user\" Senha=\"senha\" CNPJ=\"0000000000000\" CategoriaUsuario=\"1\" xmlns=\"https://www.nfp.sp.gov.br/ws\"/>";
sBody += "</soap12:Header>";
sBody += "<soap12:Body>";
sBody += "<Enviar xmlns=\"https://www.nfp.sp.gov.br/ws\">";
sBody += "<NomeArquivo>nomeArquivo</NomeArquivo>";
sBody += "<ConteudoArquivo>0</ConteudoArquivo>";
sBody += "<EnvioNormal>false</EnvioNormal>";
sBody += "<Observacoes></Observacoes>";
sBody += "</Enviar>";
sBody += "</soap12:Body>";
sBody += "</soap12:Envelope>";
try {
// Criando e configurando o serviço
Call call = (Call) new Service().createCall();
// Configurando o endereço.
call.setTargetEndpointAddress(sServico);
// Marcando o método a ser chamado.
call.setOperationName("Enviar");
// Parâmetros da função soma.
Object[] Parametros = new Object[]{new Integer(2),new Integer(4)};
//Parametros[0] = String("");
// Retorno da Função
Integer ret = (Integer)call.invoke(Parametros);
// Imprime o resultado: ret = 2 + 4.
System.out.println("Resultado : " + ret);
} catch (ServiceException e) {
System.out.println("ServiceException : " + e);
} catch (RemoteException e) {
System.out.println("RemoteException : " + e);
}
}
}
crie um projeto Web no Eclipse,
depois vc copia e cola esse WSDL (pegue do codigo fonte… para nao copiar os “-”),
em uma pasta(por padrao coloque em uma pasta chamada wsdl) dentro do seu WebContent
depois dali fica tudo mais facil
clique com o botao direito emcima do wsdl no seu projeto,
depois cliente em criar Web Services, e coloca em Generate Client
ai vai aparecer uma telinha com uma figura igual a um termometro. ai vc coloca pra cima
até aparece Install Client
e pronto é next e finish
ali ele vai criar os Objetos que vc precisa(TO(Conhecido tbm como VO), as interfaces etc…)
depois vc precisara fazer uma classe para fazer o lookup(segue abaixo o main da classe que faz o lookup)
Obs: Esses objetos que estou usando nessa classe, são os objetos reais que vc vai usar****
A NF-p é bem simples comparando com a NF-e. Você nao precisa mais nada além dessas classes para gerar, e trasmitir e receber retornos das suas consultas e envios.
Boa tarde pessoal, estou com uma duvida sobre web services e aproveitando a duvida gostaria que alguem me ajuda-se.
Bom criei um web services que o serviço me retorna um WebRowSetImpl . Agora não to sabendo utilizar esse retorno no client, estou desenvolvendo em NetBeans 6.1. Quando eu tento buscar os dados do result que vem do metodo WebRowSetImpl do servico nao mostra as metodos getString ou outro. como Faço para buscar os dados do result ?
porém quando tente rodar no eclipse, aparece o seguinte erro:
javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(Unknown Source)
at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(Unknown Source)
at javax.naming.InitialContext.lookup(Unknown Source)
at TesteMain.TesteNF.main(TesteNF.java:16)
Alguém poderia me dizer o que eu estou fazendo de errado?
ola pessoal
estou com a mesma duvida
nao consigo gerar as classes java usando o wsdl
da nota de americana
alguem pode me ajudar
fiz exatamente como o 2º topico, do nandolup
na hora do finish, aparece uma mensagem de erro
IWAB0399E Error in generating Java from WSDL: java.io.IOException: Emitter failure. Invalid endpoint address in port NfseSoap in service NfseLocator: https://nfse.americana.sp.gov.br:442/WSNacional/nfse.asmx
java.io.IOException: Emitter failure. Invalid endpoint address in port NfseSoap in service NfseLocator: https://nfse.americana.sp.gov.br:442/WSNacional/nfse.asmx
at org.apache.axis.wsdl.toJava.JavaServiceImplWriter.writeFileBody(JavaServiceImplWriter.java:242)
at org.apache.axis.wsdl.toJava.JavaWriter.generate(JavaWriter.java:127)
at org.apache.axis.wsdl.toJava.JavaServiceWriter.generate(JavaServiceWriter.java:112)
at org.apache.axis.wsdl.toJava.JavaGeneratorFactory$Writers.generate(JavaGeneratorFactory.java:421)
at org.apache.axis.wsdl.gen.Parser.generate(Parser.java:476)
at org.apache.axis.wsdl.gen.Parser.access$000(Parser.java:45)
at org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:362)
at java.lang.Thread.run(Unknown Source)