I got it working. Here is the DII code: package com.mycompany.client.test.ws; | | import java.net.MalformedURLException; | import java.net.URL; | import java.rmi.RemoteException; | import java.util.ArrayList; | import java.util.List; | | import javax.xml.namespace.QName; | import javax.xml.rpc.ServiceException; | import javax.xml.rpc.handler.HandlerInfo; | | import junit.framework.TestCase; | | import org.jboss.ws.jaxrpc.ServiceExt; | import org.jboss.ws.jaxrpc.ServiceFactoryImpl; | import org.jboss.ws.jaxrpc.ServiceImpl; | import org.jboss.ws.wsse.WSSecurityHandlerOutbound; | | import ... | | public class WSTestCase extends TestCase { | private static final String SERVICE_NAMESPACE = "http://client.mycompany.com/clientstuff/1.0"; | | private String testDescription = null; | | // Possible Outputs | private String exceptionThrown = null; | | public void testPlanStep1() throws MalformedURLException, ServiceException { | go(getInput()); | } | | private void go(Echo request) throws ServiceException, MalformedURLException { | System.out.println("\n" + this.testDescription + "\n"); | displayTestInput(request); | | String expectedOutput = determineExpectedOutput(); | try { | ClientServiceEndpoint clientServiceEndpoint = getEndpoint(); | EchoResponse echoResponse = clientServiceEndpoint.echo(request); | | ClientServiceReply clientServiceReply = echoResponse.getResult(); | System.out.println(clientServiceReply.getAuditId()); | | } catch (Exception e) { | String exceptionThrown = e.getClass().getName(); | displayOutput(expectedOutput, exceptionThrown); | displayResult(exceptionThrown.equals(expectedOutput)); | e.printStackTrace(); | assertTrue(false); | } | } | | private ClientServiceEndpoint getEndpoint() throws MalformedURLException, ServiceException, InvalidRequestException, SystemUnavailableException, RemoteException { | ServiceFactoryImpl factory = new ServiceFactoryImpl(); | ClassLoader cl = Thread.currentThread().getContextClassLoader(); | URL wsdlLocation = new URL("http://localhost:8080/clientService/ClientService?wsdl"); | URL mappingLocation = cl.getResource("client-mapping.xml"); | URL securityLocation = cl.getResource("jboss-wsse-client.xml"); | QName serviceName = new QName(SERVICE_NAMESPACE, "ClientService"); | ServiceImpl service = (ServiceImpl) factory.createService(wsdlLocation, serviceName, mappingLocation, securityLocation); | setupWSSecurityHandler(service); | return (ClientServiceEndpoint) service.getPort(ClientServiceEndpoint.class); | } | | private Echo getInput() { | Echo echoInput = new Echo(); | ClientServiceRequest clientServiceRequest = new ClientServiceRequest(); | clientServiceRequest.setAuditId("eggie"); | echoInput.setClientServiceRequest_1(clientServiceRequest); | | return echoInput; | } | | private void setupWSSecurityHandler(ServiceExt service) { | List<HandlerInfo> clientHandlerChain = new ArrayList<HandlerInfo>(); | HandlerInfo handler = new HandlerInfo(); | handler.setHandlerClass(WSSecurityHandlerOutbound.class); | clientHandlerChain.add(handler); | QName securityName = new QName(SERVICE_NAMESPACE, "ClientStuffEndpointPort"); | service.getDynamicHandlerRegistry().setHandlerChain(securityName, clientHandlerChain); | } | } | |
Notice the use of the jboss-wsse-client.xml file as input to the createService method. Here is my jboss-wsse-client.xml: <?xml version="1.0" encoding="UTF-8"?> | <jboss-ws-security xmlns="http://www.jboss.com/ws-security/config" | xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" | xsi:schemaLocation="http://www.jboss.com/ws-security/config http://www.jboss.com/ws-security/schema/jboss-ws-security_1_0.xsd"> | <key-store-file>wsse.keystore</key-store-file> | <key-store-password>jbossws</key-store-password> | <trust-store-file>wsse.truststore</trust-store-file> | <trust-store-password>jbossws</trust-store-password> | <config> | <sign type="x509v3" alias="wsse" /> | <requires> | <signature /> | </requires> | </config> | </jboss-ws-security> Of course, I used the keystore and truststore from the JBossWS 1.0.2 sample archive. View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3962284#3962284 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3962284 _______________________________________________ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user