[jboss-user] [JBoss AS Documentation] - How can I resolve "org.apache.cxf.service.factory.ServiceConstructionException"?

Carlos Bejarano do-not-reply at jboss.com
Thu Dec 13 13:27:38 EST 2012


Carlos Bejarano [https://community.jboss.org/people/cbejarano] created the discussion

"How can I resolve "org.apache.cxf.service.factory.ServiceConstructionException"?"

To view the discussion, visit: https://community.jboss.org/message/783338#783338

--------------------------------------------------------------
Hi,
I am using Jboss 6.1.0 Final and Jboss-cxf 3.4.1 GA...
I have problems with my application(this app consume a WS to send SMS), but when I run it, the console show this:

Here my console output:

[#|Preparing to sms send. Subscriber: 340677]
URL WSDL :::>  http://192.168.164.153:8011/platform/MessagingService?WSDL http://192.168.164.153:8011/platform/MessagingService?WSDL
   -- Enviar SMS a Destino --  50494540128
Inicializar Servicio :::>  http://192.168.164.153:8011/platform/MessagingService?WSDL http://192.168.164.153:8011/platform/MessagingService?WSDL
Estado Servicio :::> hn.com.tigo.corporatesms.negocio.wsclient.MessagingServiceHttpBindingQSService at 545eb748

hn.com.tigo.corporatesms.negocio.wsclient.SendMessageTechnicalExceptionMsg: org.apache.cxf.service.factory.ServiceConstructionException
          at org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:332)
          at org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:317)
          at javax.xml.ws.Service.getPort(Unknown Source)
          at hn.com.tigo.corporatesms.negocio.wsclient.MessagingServiceHttpBindingQSService.getMessagingServiceHttpBindingQSPort(MessagingServiceHttpBindingQSService.java:61)
          at hn.com.tigo.corporatesms.negocio.wsclient.facade.SendSMSWSClientFacade.sendSMS(SendSMSWSClientFacade.java:79)
          at hn.com.tigo.corporatesms.negocio.wsclient.facade.SendSMSWSClientFacade.sendSMSToMSISDN(SendSMSWSClientFacade.java:136)
          at hn.com.tigo.corporatesms.negocio.sms.SendSMS.send(SendSMS.java:120)
          at hn.com.tigo.corporatesms.negocio.sms.SendSMS.send(SendSMS.java:98)
          at hn.com.tigo.corporatesms.negocio.motor.tarea.TareaMotor02.sendSubscriberList(TareaMotor02.java:324)
          at hn.com.tigo.corporatesms.negocio.motor.tarea.TareaMotor02.doTask(TareaMotor02.java:256)
          at hn.com.tigo.corporatesms.negocio.motor.tarea.TareaMotor02.ejecutarTarea(TareaMotor02.java:91)
          at hn.com.tigo.corporatesms.negocio.timer.TareaGeneral.run(TareaGeneral.java:132)
          at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.cxf.service.factory.ServiceConstructionException
          at org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactoryBean.java:97)
          at org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyFactoryBean.java:117)
          at org.apache.cxf.jaxws.JaxWsProxyFactoryBean.create(JaxWsProxyFactoryBean.java:124)
          at org.apache.cxf.jaxws.ServiceImpl.createPort(ServiceImpl.java:463)
          at org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:330)
          ... 12 more
Caused by: org.apache.cxf.BusException: No binding factory for namespace  http://schemas.xmlsoap.org/ws/2004/09/policy http://schemas.xmlsoap.org/ws/2004/09/policy registered.
          at org.apache.cxf.binding.BindingFactoryManagerImpl.getBindingFactory(BindingFactoryManagerImpl.java:120)
          at org.apache.cxf.frontend.AbstractWSDLBasedEndpointFactory.createEndpoint(AbstractWSDLBasedEndpointFactory.java:115)
          at org.apache.cxf.frontend.ClientFactoryBean.create(ClientFactoryBean.java:90)
          ... 16 more
[#|SMS not sended]

and here my client code:

private GeneralResponse sendSMS(MobileMessage pMobileMessage)
                              throws SendMessageTechnicalExceptionMsg {
                    try {
                              System.out.println("Inicializar Servicio :::> " + this.urlWSDL);
                              MessagingServiceHttpBindingQSService servicio = new MessagingServiceHttpBindingQSService(
                                                  new URL(this.urlWSDL));
                              System.out.println("Estado Servicio :::> " + servicio);
                              MessagingService port = servicio
                                                  .getMessagingServiceHttpBindingQSPort(); // and this point my code dies
                              Map<String, Object> ctx = ((BindingProvider) port)
                                                  .getRequestContext();
                              ctx.put("ws-security.username", userName);
                              ctx.put("ws-security.password", password);
                              System.out.println("Port :::> " + port);
                              printXMLRequest(pMobileMessage);
                              GeneralResponse response = port.sendMessage(pMobileMessage);
                              printXMLResponse(response);
                              return response;
                    } catch (MalformedURLException ex) {
                              SendMessageTechnicalExceptionMsg sendEX = new SendMessageTechnicalExceptionMsg(
                                                  ex.getMessage(), ex.getCause());
                              sendEX.setStackTrace(ex.getStackTrace());
                              throw sendEX;
                    } catch (Exception e) {
                              SendMessageTechnicalExceptionMsg sendEX = new SendMessageTechnicalExceptionMsg(
                                                  e.getMessage(), e.getCause());
                              sendEX.setStackTrace(e.getStackTrace());
                              throw sendEX;
                    }
 
 
          }
 


the next code is from MessagingServiceHttpBindingQSService class, where the code explodes in the method getMessagingServiceHttpBindingQSPort


/*
 * 
 */
package hn.com.tigo.corporatesms.negocio.wsclient;
 
 
import java.net.MalformedURLException;
import java.net.URL;
 
 
import javax.xml.namespace.QName;
import javax.xml.ws.Service;
import javax.xml.ws.WebEndpoint;
import javax.xml.ws.WebServiceClient;
import javax.xml.ws.WebServiceFeature;
 
 
/**
 * This class was generated by Apache CXF 2.3.1
 * Wed Sep 14 12:03:15 CST 2011
 * Generated source version: 2.3.1
 * 
 */
@WebServiceClient(name = "MessagingServiceHttpBindingQSService",
wsdlLocation = "http://osb.celtel.net:8001/platform/MessagingService?wsdl",
targetNamespace = "http://tigo.hn/platform/messaging")
public class MessagingServiceHttpBindingQSService extends Service {
 
 
    public final static URL WSDL_LOCATION;
    public final static QName SERVICE = new QName("http://tigo.hn/platform/messaging", "MessagingServiceHttpBindingQSService");
    public final static QName MessagingServiceHttpBindingQSPort = new QName("http://tigo.hn/platform/messaging", "MessagingServiceHttpBindingQSPort");
 
 
    static {
        URL url = null;
        try {
            url = new URL("http://osb.celtel.net:8001/platform/MessagingService?wsdl");
        } catch (MalformedURLException e) {
            System.err.println("Can not initialize the default wsdl from http://osb.celtel.net:8001/platform/MessagingService?wsdl");
            // e.printStackTrace();
        }
        WSDL_LOCATION = url;
    }
 
 
    public MessagingServiceHttpBindingQSService(URL wsdlLocation) {
        super(wsdlLocation, SERVICE);
    }
 
 
    public MessagingServiceHttpBindingQSService(URL wsdlLocation, QName serviceName) {
        super(wsdlLocation, serviceName);
    }
 
 
    public MessagingServiceHttpBindingQSService() {
        super(WSDL_LOCATION, SERVICE);
    }
 
 
    /**
     * 
     * @return
     *     returns MessagingService
     */
    @WebEndpoint(name = "MessagingServiceHttpBindingQSPort")
    public MessagingService getMessagingServiceHttpBindingQSPort() {
        return super.getPort(MessagingServiceHttpBindingQSPort, MessagingService.class); //Other point with problems
    }
 
 
    /**
     * 
     * @param features
     *     A list of {@link javax.xml.ws.WebServiceFeature} to configure on the proxy.  Supported features not in the <code>features</code> parameter will have their default values.
     * @return
     *     returns MessagingService
     */
    @WebEndpoint(name = "MessagingServiceHttpBindingQSPort")
    public MessagingService getMessagingServiceHttpBindingQSPort(WebServiceFeature... features) {
        return super.getPort(MessagingServiceHttpBindingQSPort, MessagingService.class, features);
    }
}
 


Thanks a lot for your help
--------------------------------------------------------------

Reply to this message by going to Community
[https://community.jboss.org/message/783338#783338]

Start a new discussion in JBoss AS Documentation at Community
[https://community.jboss.org/choose-container!input.jspa?contentType=1&containerType=14&container=2079]

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/jboss-user/attachments/20121213/bb0ecab2/attachment-0001.html 


More information about the jboss-user mailing list