cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jeff Zhang (JIRA)" <j...@apache.org>
Subject [jira] Commented: (CXF-1050) Runtime error in server with wrong interface in serviceinfo
Date Thu, 20 Sep 2007 10:28:31 GMT

    [ https://issues.apache.org/jira/browse/CXF-1050?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12529050
] 

Jeff Zhang commented on CXF-1050:
---------------------------------

suspicious code:

AbstractEndpointFactory.java

Line203:
        if (destinationFactory instanceof WSDLEndpointFactory) {
            ei = ((WSDLEndpointFactory)destinationFactory)
                .createEndpointInfo(service.getServiceInfos().get(0), bindingInfo, null);
            ei.setTransportId(transportId);
        } else {
            ei = new EndpointInfo(service.getServiceInfos().get(0), transportId);
        }

pls see hard code get(0)

> Runtime error in server with wrong interface in serviceinfo
> -----------------------------------------------------------
>
>                 Key: CXF-1050
>                 URL: https://issues.apache.org/jira/browse/CXF-1050
>             Project: CXF
>          Issue Type: Bug
>          Components: Core
>            Reporter: Jeff Zhang
>         Attachments: uddiv3.zip
>
>
> I use CXF to work on UDDI v3 wsdl files. (pls see comment attached file)
> Found a bug caused by service model or Jaxws frontend.
> reproduce:
> wsdl2java -all cxf_server.wsdl
> modify UDDIInquiryPortTypeImpl.java (see JIRA 1048)
> @javax.jws.WebService(name = "UDDIInquiryPortType", serviceName = "CXFServer",
>                       portName = "UDDI_Inquiry_PortType",
>                       targetNamespace = "urn:uddi-org:v3_service", 
>                       wsdlLocation = "file:etc/cxf_server.wsdl" ,
> and ant task in build.xml
>     <target name="UDDIInquiryPortType_UDDIInquiryPort_Server" description="Run org.apache.cxf.uddi.v3.UDDISubscriptionListenerPortType_UDDISubscriptionListenerPort_Server"
depends="compile">
>         <cxfrun classname="org.uddi.api_v3_porttype.UDDIInquiryPortType_UDDIInquiryPort_Server"
>                    param1="file:cxf_server.wsdl"/>
>     </target>
>     <target name="UDDIInquiryPortType_UDDIInquiryPort_Client" description="Run org.apache.cxf.uddi.v3.UDDISubscriptionListenerPortType_UDDISubscriptionListenerPort_Client"
depends="compile">
>         <property name="param" value=""/>
>         <cxfrun classname="org.uddi.api_v3_porttype.UDDIInquiryPortType_UDDIInquiryPort_Client"
>                    param1="file:cxf_server.wsdl"
>                    param2="${op}"
>                    param3="${param}"/>
>     </target>
> modify UDDIInquiryPortType_UDDIInquiryPort_Client.java (fill in message part)
>         System.out.println("Invoking findBusiness...");
>         org.uddi.api_v3.FindBusiness _findBusiness_body = new org.uddi.api_v3.FindBusiness();
>         org.uddi.api_v3.Name name = new org.uddi.api_v3.Name();
>         name.setValue("%");
>         _findBusiness_body.getName().add(name);
>         try {
> 			org.uddi.api_v3.BusinessList _findBusiness__return = port.findBusiness(_findBusiness_body);
>             System.out.println("findBusiness.result=" + _findBusiness__return);
>         } catch (DispositionReportFaultMessage e) {
>             System.out.println("Expected exception: DispositionReportFaultMessage has
occurred.");
>             System.out.println(e.toString());
>         }
> comment following part, we only test find_business method.
> start server, and client.
> A exception throwed from server: 
> Caused by: org.apache.cxf.binding.soap.SoapFault: Message part {urn:uddi-org:api_v3}find_business
was not recognized.
> 	at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:69)
> 	at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:36)
> 	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
> 	at org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:90)
> 	at org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:181)
> 	at org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:57)
> 	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
> 	at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:395)
> 	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1959)
> 	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1806)
> 	at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
> 	at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:574)
> 	at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
> 	at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:207)
> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)
> 	at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:205)
> 	at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
> 	at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)
> 	... 2 more
> I looked into runtime code, the serveceinfo contains wrong interface. 
> It should find method in "UDDI_Inquiry_PortType" part, but runtime get "UDDI_Security_PortType"
info.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message