Thank you! I've been looking at that all day and didn't see that I had put in
a parenthesis  instead of the brace. That solved that problem. Now I'm on
the next!

Thanks much!

Paul


plester3738 wrote:
> 
> I'm to establish a connection with a web service located at :
> https://metocdata.afwa.af.mil/JMBLWeb/jmbl/JMBLWebService.jws
> 
> I have downloaded the WSDL to my local machine, and it is in the
> classpath; however, I get the following exception when I try to connect to
> the service:
> 
> org.apache.cxf.service.factory.ServiceConstructionException: Could not
> find definition for service (urn:metoc:jmcbl:jmbl)JMBLWebService.
>       at
> org.apache.cxf.wsdl11.WSDLServiceFactory.create(WSDLServiceFactory.java:114)
>       at
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.buildServiceFromWSDL(ReflectionServiceFactoryBean.java:312)
>       at
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.initializeServiceModel(ReflectionServiceFactoryBean.java:408)
>       at
> org.apache.cxf.service.factory.ReflectionServiceFactoryBean.create(ReflectionServiceFactoryBean.java:189)
>       at
> org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean.create(JaxWsServiceFactoryBean.java:164)
>       at
> org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:100)
>       at
> org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactoryBean.java:52)
>       at
> org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyFactoryBean.java:102)
>       at
> org.apache.cxf.jaxws.JaxWsProxyFactoryBean.create(JaxWsProxyFactoryBean.java:115)
>       at test.GeneralUMOTest.cxfTest(GeneralUMOTest.java:61)
>       at test.GeneralUMOTest.main(GeneralUMOTest.java:112)
> 
> Here is the WSDL, with the XSD excluded:
>               <xs:schema attributeFormDefault="unqualified"
> elementFormDefault="qualified" targetNamespace="urn:metoc:jmcbl:jmbl"
> xmlns:s0="http://schemas.xmlsoap.org/wsdl/";
> xmlns:s1="urn:metoc:jmcbl:jmbl" xmlns:s2="urn:metoc:jmbl:wsdl"
> xmlns:s3="http://schemas.xmlsoap.org/wsdl/soap/";
> xmlns:xs="http://www.w3.org/2001/XMLSchema"/>
>       </s0:types>
>       <s0:message name="getMETOCRequest">
>               <s0:part name="aRequestList" element="s1:RequestList"/>
>       </s0:message>
>       <s0:message name="getMETOCRequestResponse">
>               <s0:part name="ResponseList" element="s1:ResponseList"/>
>       </s0:message>
>       <s0:portType name="JMBLWebServiceSoapPortType">
>               <s0:operation name="getMETOCRequest" 
> parameterOrder="aRequestList">
>                       <s0:input message="s2:getMETOCRequest"/>
>                       <s0:output message="s2:getMETOCRequestResponse"/>
>               </s0:operation>
>       </s0:portType>
>       <s0:binding name="JMBLWebServiceSoapBinding"
> type="s2:JMBLWebServiceSoapPortType">
>               <s3:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/>
>               <s0:operation name="getMETOCRequest">
>                       <s3:operation soapAction="" style="document"/>
>                       <s0:input>
>                               <s3:body parts="aRequestList" use="literal"/>
>                       </s0:input>
>                       <s0:output>
>                               <s3:body parts="ResponseList" use="literal"/>
>                       </s0:output>
>               </s0:operation>
>       </s0:binding>
>       <s0:service name="JMBLWebService">
>               <s0:port name="JMBLWebServicePort"
> binding="s2:JMBLWebServiceSoapBinding">
>                       <s3:address
> location="http://apps0101p:80/JMBLWeb/jmbl/JMBLWebService.jws"/>
>               </s0:port>
>       </s0:service>
> 
> 
> What am I missing???
> 
> I'm using the following code:
>             JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
>             // These interceptors will output soap-payloads to the system
>             // console and and are VERY useful for debugging.
>             factory.getInInterceptors().add(new LoggingInInterceptor());
>             factory.getOutInterceptors().add(new LoggingOutInterceptor());
>             
>             // This is where you define the **interface** service class
>             factory.setServiceClass(JMBLWebService.class);
>             // The endpoint of which you are trying to connect to.
>            
> factory.setAddress("https://metocdata.afwa.af.mil/JMBLWeb/jmbl/JMBLWebService.jws";);
>             // Most likely (especially via https) you have downloaded
>             // the remote WSDL file to your machine.  This file must 
>             // either be on your classpath and/or you must supply the
>             // aboslute path name (which then you would use file:  instead
>             // of classpath: )
>             factory.setWsdlURL("classpath:resources/JMBLWebService.wsdl");
>             // Specify using the following format -->
> {targetNamespace}ServiceName
>            
> factory.setServiceName(QName.valueOf("(urn:metoc:jmcbl:jmbl)JMBLWebService"));
>             // Specify using the following format -->
> {targetNamespace}ServicePortType
>            
> factory.setEndpointName(QName.valueOf("{urn:metoc:jmcbl:jmbl}JMBLWebServiceSoapPortType"));
>             
>             
>             System.out.println("Connecting to server: " +
> factory.getAddress());
>             // This instantiates the remote-client object.
>             JMBLWebService general = (JMBLWebService)factory.create(); <--
> Exception happens here!
>             
>             // Establishing the SSL sessiona and providing the keystore
>             // and truststore associated with this connection.
>             // Notice that getClient() is using the object defined above.
>             Client client = ClientProxy.getClient(general);
>             HTTPConduit conduit = (HTTPConduit) client.getConduit();
>             TLSClientParametersType tlsConfig = new
> TLSClientParametersType();
>             // You would normally omit the line below.  It is set for
> ignoring 
>             // the remote hostname and the hostname defined in the server
> certificate.
>             // If they are NOT the same, then the connection would not
> establish.  As
>             // this is what you would want in a real production
> environment.
>             tlsConfig.setDisableCNCheck(true);
>             tlsConfig.setSecureSocketProtocol("SSL");
>             
>             // KEYSTORE
>             KeyManagersType keyManagersType = new KeyManagersType();
>             KeyStoreType keyStoreType = new KeyStoreType();
>            
> keyStoreType.setFile(ClassLoader.getSystemResource("resources/MetocCA.jks").getFile());
>             keyStoreType.setType("JKS");
>             keyStoreType.setPassword("password");
>             keyManagersType.setKeyStore(keyStoreType);
>             keyManagersType.setKeyPassword("password");
>             tlsConfig.setKeyManagers(keyManagersType);
>             
>             // TRUSTSTORE
>             TrustManagersType trustManagersType = new TrustManagersType();
>             KeyStoreType trustStoreType = new KeyStoreType();
>            
> trustStoreType.setFile(ClassLoader.getSystemResource("resources/MetocCA.jks").getFile());
>             trustStoreType.setType("JKS");
>             trustStoreType.setPassword("password");
>             trustManagersType.setKeyStore(trustStoreType);
>             tlsConfig.setTrustManagers(trustManagersType);
>             
>             TLSClientParametersConfig tlsconfig = new
> TLSClientParametersConfig(tlsConfig);
>             conduit.setTlsClientParameters(tlsconfig);
>            
>             [snip...]           
> 
> Thanks, in advance, for your help!
> 

-- 
View this message in context: 
http://www.nabble.com/JaxWsProxyFactoryBean-Could-not-find-definition-for-service-tp20774826p20781630.html
Sent from the cxf-user mailing list archive at Nabble.com.

Reply via email to