Como implementar um certificado digital com SSL/autenticacao mutua

Ola pessoal,

Estou implementando uma solucao para conhecimento de transporte eletronico (CT-e) que devera seguir a mesma logica que as SEFAZ usam para NF-e.
Nunca implementei nada de NF-e, mas olhei aqui no site nestes links, que ja me ajudaram, mas ainda estou com dificuldade no certificado digital…
http://www.guj.com.br/posts/list/70567.java
http://www.guj.com.br/posts/list/81315.java#432722
http://www.guj.com.br/posts/list/15/71969.java

Eu ja peguei as WSDLs fornecidas pelo RS para testes, e tambem um arquivo .crt (que é o certificado fornecido pelo RS).
Adicionei no ControlPanel do Java o arquivo .crt.

Minha aplicacao é Java/Swing (desktop). Portanto, nao uso Tomcat/Axis/etc, preciso apenas conseguir montar a comunicacao direta entre minha aplicacao e o WS de teste de Status de Servico.

Quando chamo o WS, aparece este erro:

com.sun.xml.ws.client.ClientTransportException: HTTP transport error: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
        at com.sun.xml.ws.transport.http.client.HttpClientTransport.getOutput(HttpClientTransport.java:135)
        at com.sun.xml.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:142)
        at com.sun.xml.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:88)
        at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:595)
        at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:554)
        at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:539)
        at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:436)
        at com.sun.xml.ws.client.Stub.process(Stub.java:248)
        at com.sun.xml.ws.client.sei.SEIStub.doProcess(SEIStub.java:134)
        at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:244)
        at com.sun.xml.ws.client.sei.SyncMethodHandler.invoke(SyncMethodHandler.java:224)
        at com.sun.xml.ws.client.sei.SEIStub.invoke(SEIStub.java:117)
        at $Proxy30.cteStatusServicoCT(Unknown Source)

Acredito que tem a ver com o erro que estava sendo discutido em um dos links acima.
Contudo, eu nao estou sabendo por onde comecar para corrigir isso…

Agradeco desde ja a atencao e a ajuda…