Problema com Web Service

sem problemas, se ja gerou o jks blz, não é que ela não faça nada, ela espera que você passe parametros, mas qualqer duvida posta ai, se eu não souber corremos atras :wink:

Valeu cara, agradeço mesmo…
Então gerei um arq jks…

e fiz o código ficou assim:

[code]try {
new Certificado().configurarSSL("", “C:/Users/Suelen/Documents/certificado.jks”, “123456”);

		ServicoSolicitacaoWS service;
		try {
			service = new ServicoSolicitacaoWSServiceLocator()
					.getServicoSolicitacaoWS();
			service.executarSolicitacao(s, u);
		} catch (ServiceException e) {
			e.printStackTrace();
		}
	} catch (RemoteException e) {
		e.printStackTrace();
	}

[/code]e na outra classe que configura ssl:

System.setProperty("sun.security.ssl.allowUnsafeRenegotiation", "true"); System.setProperty("java.protocol.handler.pkgs", "com.sun.net.ssl.internal.www.protocol"); Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider()); System.setProperty("javax.net.ssl.keyStoreType", "PKCS12"); System.setProperty("javax.net.ssl.keyStore", cert); System.setProperty("javax.net.ssl.keyStorePassword", senhaCert); System.setProperty("javax.net.ssl.trustStoreType", "JKS"); System.setProperty("javax.net.ssl.trustStore", keystore);
oq to fazendo errado
mas ta dano erro na linha “Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());”

qual o erro ? esta usando netbeans ? o que diz ? não consegue fazer o import ?

Description Resource Path Location Type
Access restriction: The constructor Provider() is not accessible due to restriction on required library C:\Program Files\Java\jre1.6.0_06\lib\jsse.jar Certificado.java /FarmaciaPopular/src/ServicosWS line 12 Java Problem

Description Resource Path Location Type
Access restriction: The type Provider is not accessible due to restriction on required library C:\Program Files\Java\jre1.6.0_06\lib\jsse.jar Certificado.java /FarmaciaPopular/src/ServicosWS line 12 Java Problem

da esses dois erros…
uso o eclipse

Arrumei a linha e agr da o seguinte erro:

[code]17/02/2012 12:58:21 org.apache.axis.utils.JavaUtils isAttachmentSupported
WARNING: Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled.
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: java.net.SocketException: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl)
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:java.net.SocketException: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl)
at javax.net.ssl.DefaultSSLSocketFactory.throwException(Unknown Source)
at javax.net.ssl.DefaultSSLSocketFactory.createSocket(Unknown Source)
at org.apache.axis.components.net.JSSESocketFactory.create(JSSESocketFactory.java:92)
at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:191)
at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:404)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at org.datasus.service.ServicoSolicitacaoWSSoapBindingStub.executarSolicitacao(ServicoSolicitacaoWSSoapBindingStub.java:318)
at ServicosWS.Solicitacao.main(Solicitacao.java:77)
Caused by: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl)
at java.security.Provider$Service.newInstance(Unknown Source)
at sun.security.jca.GetInstance.getInstance(Unknown Source)
at sun.security.jca.GetInstance.getInstance(Unknown Source)
at javax.net.ssl.SSLContext.getInstance(Unknown Source)
at javax.net.ssl.SSLContext.getDefault(Unknown Source)
at javax.net.ssl.SSLSocketFactory.getDefault(Unknown Source)
at org.apache.axis.components.net.JSSESocketFactory.initFactory(JSSESocketFactory.java:61)
at org.apache.axis.components.net.JSSESocketFactory.create(JSSESocketFactory.java:79)
… 14 more
Caused by: java.io.IOException: DerInputStream.getLength(): lengthTag=109, too big.
at sun.security.util.DerInputStream.getLength(Unknown Source)
at sun.security.util.DerValue.init(Unknown Source)
at sun.security.util.DerValue.<init>(Unknown Source)
at com.sun.net.ssl.internal.pkcs12.PKCS12KeyStore.engineLoad(Unknown Source)
at java.security.KeyStore.load(Unknown Source)
at com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl.getDefaultKeyManager(Unknown Source)
at com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl.<init>(Unknown Source)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
… 22 more

{http://xml.apache.org/axis/}hostname:RodrigoP

java.net.SocketException: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl)
at org.apache.axis.AxisFault.makeFault(AxisFault.java:101)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:154)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at org.datasus.service.ServicoSolicitacaoWSSoapBindingStub.executarSolicitacao(ServicoSolicitacaoWSSoapBindingStub.java:318)
at ServicosWS.Solicitacao.main(Solicitacao.java:77)
Caused by: java.net.SocketException: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl)
at javax.net.ssl.DefaultSSLSocketFactory.throwException(Unknown Source)
at javax.net.ssl.DefaultSSLSocketFactory.createSocket(Unknown Source)
at org.apache.axis.components.net.JSSESocketFactory.create(JSSESocketFactory.java:92)
at org.apache.axis.transport.http.HTTPSender.getSocket(HTTPSender.java:191)
at org.apache.axis.transport.http.HTTPSender.writeToSocket(HTTPSender.java:404)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:138)
… 11 more
Caused by: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl)
at java.security.Provider$Service.newInstance(Unknown Source)
at sun.security.jca.GetInstance.getInstance(Unknown Source)
at sun.security.jca.GetInstance.getInstance(Unknown Source)
at javax.net.ssl.SSLContext.getInstance(Unknown Source)
at javax.net.ssl.SSLContext.getDefault(Unknown Source)
at javax.net.ssl.SSLSocketFactory.getDefault(Unknown Source)
at org.apache.axis.components.net.JSSESocketFactory.initFactory(JSSESocketFactory.java:61)
at org.apache.axis.components.net.JSSESocketFactory.create(JSSESocketFactory.java:79)
… 14 more
Caused by: java.io.IOException: DerInputStream.getLength(): lengthTag=109, too big.
at sun.security.util.DerInputStream.getLength(Unknown Source)
at sun.security.util.DerValue.init(Unknown Source)
at sun.security.util.DerValue.(Unknown Source)
at com.sun.net.ssl.internal.pkcs12.PKCS12KeyStore.engineLoad(Unknown Source)
at java.security.KeyStore.load(Unknown Source)
at com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl.getDefaultKeyManager(Unknown Source)
at com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl.(Unknown Source)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
… 22 more
[/code]

alguma sugestão???

agora não sei, mas pela mensagem acredito ainda ser rolo na parte do certificado, falando nisto, se gerou o .jks por keytool deve também importar toda cadeia da raiz certificadora para o arquivo de chaves.

Eu consegui gerar o arquivo pelo InstallCert…
Agora o que eu deveria fazer???
isso?
System.setProperty(“sun.security.ssl.allowUnsafeRenegotiation”, “true”);
System.setProperty(“java.protocol.handler.pkgs”,
“com.sun.net.ssl.internal.www.protocol”);
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
System.setProperty(“javax.net.ssl.keyStoreType”, “PKCS12”);
System.setProperty(“javax.net.ssl.keyStore”, “”);
System.setProperty(“javax.net.ssl.keyStorePassword”, “”);
System.setProperty(“javax.net.ssl.trustStoreType”, “JKS”);
System.setProperty(“javax.net.ssl.trustStore”, “jssecacerts”);

[quote=roodrigo.p]Eu consegui gerar o arquivo pelo InstallCert…
Agora o que eu deveria fazer???
isso?
System.setProperty(“sun.security.ssl.allowUnsafeRenegotiation”, “true”);
System.setProperty(“java.protocol.handler.pkgs”,
“com.sun.net.ssl.internal.www.protocol”);
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
System.setProperty(“javax.net.ssl.keyStoreType”, “PKCS12”);
System.setProperty(“javax.net.ssl.keyStore”, “”);
System.setProperty(“javax.net.ssl.keyStorePassword”, “”);
System.setProperty(“javax.net.ssl.trustStoreType”, “JKS”);
System.setProperty(“javax.net.ssl.trustStore”, “jssecacerts”);[/quote]

sim, acheque isto ja estava pronto rsrsrsrs.

Estava… kkk… to entrando em tanta coisa aqui e pesquisando, e ainda n consegui faze essa merda…
Mas bom…
Agora esta acusando senha do keystore incorreta

Pronto arrumei, agora deu outro erro:

[code]
17/02/2012 13:45:07 org.apache.axis.utils.JavaUtils isAttachmentSupported
WARNING: Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled.
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: java.lang.NullPointerException
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}hostname:srvjhdf42.saude.gov

java.lang.NullPointerException
at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222)
at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129)
at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at org.datasus.service.ServicoSolicitacaoWSSoapBindingStub.executarSolicitacao(ServicoSolicitacaoWSSoapBindingStub.java:318)
at ServicosWS.Solicitacao.main(Solicitacao.java:68)[/code]

uma pergunta, na hora de configurar o SSL eu envio o jssecacerts, e mais 2 parametros…
no meu caso eu to mandando o jssecacerts, e o outro arquivo jks q criei com o keytool e a senha que cria tbm…

Estou fazendo certo??

ta falando dessas linhas ?

System.setProperty("javax.net.ssl.keyStore", "");
System.setProperty("javax.net.ssl.keyStorePassword", "");
System.setProperty("javax.net.ssl.trustStoreType", "JKS"); 

System.setProperty("javax.net.ssl.keyStoreType", "JKS"); System.setProperty("javax.net.ssl.keyStore", cert); System.setProperty("javax.net.ssl.keyStorePassword", senhaCert); System.setProperty("javax.net.ssl.trustStoreType", "JKS"); System.setProperty("javax.net.ssl.trustStore", keystore);

essas quatro linhas, to achano que estou mandando errado

System.setProperty(“javax.net.ssl.keyStore”, cert);

cert é um certificado valido né ?

Ó, criei o arq jssecacerts e coloco ele na linha: System.setProperty(“javax.net.ssl.trustStore”, keystore);

Depois criei pelo keytool o arq certificado.jks e coloquei ele na linha: System.setProperty(“javax.net.ssl.keyStore”, cert);

E na coloquei a senha que criei quando criei o arq certificado.jks no keytool, na linha: System.setProperty(“javax.net.ssl.keyStorePassword”, senhaCert);

deve ta errado isso :S
E sobre o erro que coloquei ali em cime vc sabe algo???

[quote=roodrigo.p]Ó, criei o arq jssecacerts e coloco ele na linha: System.setProperty(“javax.net.ssl.trustStore”, keystore);

Depois criei pelo keytool o arq certificado.jks e coloquei ele na linha: System.setProperty(“javax.net.ssl.keyStore”, cert);

E na coloquei a senha que criei quando criei o arq certificado.jks no keytool, na linha: System.setProperty(“javax.net.ssl.keyStorePassword”, senhaCert);

deve ta errado isso :S
E sobre o erro que coloquei ali em cime vc sabe algo???[/quote]

aqui : Depois criei pelo keytool o arq certificado.jks e coloquei ele na linha: System.setProperty(“javax.net.ssl.keyStore”, cert);

pergunto: vc esta consumindo o WS de algum serviço certo ? se sim, eles devem prover o certifcado e não vc criar um, sacou ?

é a mesma coisa que quando consomi um serviço da sefaz, vc precisa comprar um certificado para então consumir o serviço.

AAAA INTENDI, intao no keystore é o certificado do servico, eu to tentano consumir o webservice da farmacia popular…
entao la eu coloco o caminha do certificado no meu pc ou só o nome do certificado, por exemplo: DRT2015.SAUDE.GOV.BR
?

Tamo quase… rsrs
Valeu pela ajuda mais uma vez!

[quote=roodrigo.p]AAAA INTENDI, intao no keystore é o certificado do servico, eu to tentano consumir o webservice da farmacia popular…
entao la eu coloco o caminha do certificado no meu pc ou só o nome do certificado, por exemplo: DRT2015.SAUDE.GOV.BR
?

Tamo quase… rsrs
Valeu pela ajuda mais uma vez![/quote]

isso coloca o caminho até o certificado que deve ser um arquivo.pfx que eles disponibilizam.

Hum…
tem q ser .pfx?
pq ate agora só consegui certificados .cer

[quote=roodrigo.p]Hum…
tem q ser .pfx?
pq ate agora só consegui certificados .cer[/quote]

pode ser sim, da até pra converter.
pfx, p12 – são PKCS #12 DER encoded

Não estou conseguindo o .pfx e os outros tipo dão invalidos…
O unico que deu certo foi o .jks que gerei pelo keytool

E se compilado da aquele erro que coloquei mais acima
Sabe oque pode ser o erro?