Hello,i want to expose .NET external web service to the jbi using your
method.my http consumer project is named external-service-consumer,and the
http provider is named external-service-provider,the assembly is named
external-service-assembly.
I have already installed the consumer and the provider.but when i deploy the
assembly,an error occurs as below:
[ERROR] mojo-execute : jbi:generate-jbi-service-assembly-descriptor
Diagnosis: The service unit external-service-http-provider does not have a
dependency which is packaged as a jbi-component or a project property
'componentName'
FATAL ERROR: Error executing Maven for a project
[ERROR] project-execute :
com.mycompany:external-service-assembly:jbi-service-assembly:1.0-SNAPSHOT ( 
task-segment: [install, jbi:projectDeploy] )
Diagnosis: The service unit external-service-http-provider does not have a
dependency which is packaged as a jbi-component or a project property
'componentName'
FATAL ERROR: Error executing Maven for a project
[INFO] jbi:projectDeploy
[INFO] snapshot com.mycompany:external-service-assembly:1.0-SNAPSHOT:
checking for updates from logicblaze
[INFO] ------------------ Deployment Analysis --------------------
[INFO] A custom project has 2 child dependencies
[INFO]  - jbi-service-assembly : C:\Documents and
Settings\Owner\.m2\repository\com\mycompany\external-service-assembly\1.0-SNAPSHOT\external-service-assembly-1.0-SNAPSHOT.zip
[INFO]  - jbi-component : C:\Documents and
Settings\Owner\.m2\repository\org\apache\servicemix\servicemix-http\fuse-3.0.1\servicemix-http-fuse-3.0.1-installer.zip
[INFO]  - jbi-shared-library : C:\Documents and
Settings\Owner\.m2\repository\org\apache\servicemix\servicemix-shared\fuse-3.0.1\servicemix-shared-fuse-3.0.1-installer.zip
[INFO] -----------------------------------------------------------
[INFO] external-service-assembly is deployed
[INFO] Stopping external-service-assembly
[INFO] Undeploying C:\Documents and
Settings\Owner\.m2\repository\com\mycompany\external-service-assembly\1.0-SNAPSHOT\external-service-assembly-1.0-SNAPSHOT.zip
[INFO] Deploying jbi-service-assembly from C:\Documents and
Settings\Owner\.m2\repository\com\mycompany\external-service-assembly\1.0-SNAPSHOT\external-service-assembly-1.0-SNAPSHOT.zip
[INFO] Starting external-service-assembly
[INFO]
----------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO]
----------------------------------------------------------------------------
[INFO] Total time: 206 second
[INFO] Finished at: Tue Jan 16 16:52:38 CST 2007
[INFO] Memory 10M/24M
[INFO]
----------------------------------------------------------------------------
[INFO] Error for project: A custom project (during install)
[INFO]
------------------------------------------------------------------------
[INFO] The service unit external-service-http-provider does not have a
dependency which is packaged as a jbi-component or a project property
'componentName'
[INFO]
------------------------------------------------------------------------
[INFO] Trace The service unit external-service-http-provider does not have a
dependency which is packaged as a jbi-component or a project property
'componentName'
[INFO]
------------------------------------------------------------------------
[ERROR] reactor-execute : D:\TOOLS\DEVELOPING
TOOLS\eclipse\eclipse2\eclipse\workspace\external-service-assembly
FATAL ERROR: Error executing Maven for a project
[INFO] BUILD ERRORS
[INFO]
------------------------------------------------------------------------
[INFO] Total time: 5 minutes 4 seconds
[INFO] Finished at: Tue Jan 16 16:52:38 CST 2007
[INFO] Final Memory: 10M/24M
[INFO]
------------------------------------------------------------------------
Exception in thread "main" java.lang.RuntimeException: Apache Maven build
exception [Some builds failed]
        at org.maven.ide.eclipse.Maven2Executor.main(Maven2Executor.java:110)
Caused by: org.apache.maven.reactor.MavenExecutionException: Some builds
failed
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:210)
        at 
org.apache.maven.embedder.MavenEmbedder.execute(MavenEmbedder.java:690)
        at org.maven.ide.eclipse.Maven2Executor.main(Maven2Executor.java:107)


pascale4 wrote:
> 
> Hi,
> after a lot of test I learnt how to expose an external web service through
> http-component.
> 
> Suppose you have a web service with this wsdl :
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions
> targetNamespace="http://localhost:8080/helloworldws/services/HelloWorldService";
> xmlns="http://schemas.xmlsoap.org/wsdl/";
> xmlns:apachesoap="http://xml.apache.org/xml-soap";
> xmlns:impl="http://localhost:8080/helloworldws/services/HelloWorldService";
> xmlns:intf="http://localhost:8080/helloworldws/services/HelloWorldService";
> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/";
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
> xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/";
> xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
> <wsdl:types/>
>   <wsdl:message name="echoResponse">
>     <wsdl:part name="echoReturn" type="xsd:string"/>
>   </wsdl:message>
>   <wsdl:message name="echoRequest">
>   </wsdl:message>
>   <wsdl:portType name="HelloWorldService">
>     <wsdl:operation name="echo">
>       <wsdl:input message="impl:echoRequest" name="echoRequest"/>
>       <wsdl:output message="impl:echoResponse" name="echoResponse"/>
>     </wsdl:operation>
>   </wsdl:portType>
>   <wsdl:binding name="HelloWorldServiceSoapBinding"
> type="impl:HelloWorldService">
>     <wsdlsoap:binding style="rpc"
> transport="http://schemas.xmlsoap.org/soap/http"/>
>     <wsdl:operation name="echo">
>       <wsdlsoap:operation soapAction=""/>
>       <wsdl:input name="echoRequest">
>         <wsdlsoap:body
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
> namespace="http://localhost:8080/helloworldws/services/HelloWorldService";
> use="encoded"/>
>       </wsdl:input>
>       <wsdl:output name="echoResponse">
>         <wsdlsoap:body
> encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
> namespace="http://localhost:8080/helloworldws/services/HelloWorldService";
> use="encoded"/>
>       </wsdl:output>
>     </wsdl:operation>
>   </wsdl:binding>
>   <wsdl:service name="HelloWorldServiceService">
>     <wsdl:port binding="impl:HelloWorldServiceSoapBinding"
> name="HelloWorldService">
>       <wsdlsoap:address
> location="http://localhost:8080/helloworldws/services/HelloWorldService"/>
>     </wsdl:port>
>   </wsdl:service>
> </wsdl:definitions>
> 
> Then you have to define an http-component provider with this xbean.xml :
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <beans
>         xmlns:http="http://servicemix.apache.org/http/1.0";
>        
> xmlns:ns1="http://localhost:8080/helloworldws/services/HelloWorldService";
>>
> <http:endpoint
>         service="ns1:HelloWorldServiceService"
>         endpoint="HelloWorldService"
>         role="provider"
>        
> locationURI="http://localhost:8080/helloworldws/services/HelloWorldService";
>        
> wsdlResource="http://localhost:8080/helloworldws/services/HelloWorldService?wsdl";
> />
> </beans>
> 
> where
> - ns1 : must match namespaces in wsdl
> - service : must match value of attribute name of element wsdl:service in
> wsdl
>   <wsdl:service name="HelloWorldServiceService">
> - endpoint : must match value of attribute name of element wsdl:port
>     <wsdl:port binding="impl:HelloWorldServiceSoapBinding"
> name="HelloWorldService">
> 
> Now you have to define http-component consumer with this xbean.xml :
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <beans
>         xmlns:http="http://servicemix.apache.org/http/1.0";
>        
> xmlns:ns1="http://localhost:8080/helloworldws/services/HelloWorldService";
>>
> <http:endpoint
>         service="ns1:HelloWorldServiceConsumer"
>         endpoint="HelloWorldEndpointConsumer"
>         role="consumer"
>         targetService="ns1:HelloWorldServiceService"
>         locationURI="http://localhost:8192/services/HelloWorldService/";
>         defaultMep="http://www.w3.org/2004/08/wsdl/in-out";
> />
> </beans>
> 
> where
> - ns1 : must match namespaces in wsdl
> - targetService : must match service value in xbean.xml of provider
> <http:endpoint
>         service="ns1:HelloWorldServiceService"
>         endpoint="HelloWorldService"
>         role="provider"
> 
> And this is the jbi.xml of Service Assembly :
> <?xml version="1.0" encoding="UTF-8"?>
> <jbi xmlns="http://java.sun.com/xml/ns/jbi"; version="1.0">
>   <service-assembly>
>     <identification>
>       <name>helloworld-sa</name>
>       <description>Codices :: HelloWorld :: SA</description>
>     </identification>
>     <service-unit>
>       <identification>
>         <name>http-su-provider</name>
>         <description>Http BC provider</description>
>       </identification>
>       <target>
>         <artifacts-zip>http-su-provider.zip</artifacts-zip>
>         <component-name>servicemix-http</component-name>
>       </target>
>     </service-unit>
>     <service-unit>
>       <identification>
>         <name>http-su-consumer</name>
>         <description>Http BC consumer</description>
>       </identification>
>       <target>
>         <artifacts-zip>http-su-consumer.zip</artifacts-zip>
>         <component-name>servicemix-http</component-name>
>       </target>
>     </service-unit>
>   </service-assembly>
> </jbi>
> 
> That's all folks
> 
> This is the source  http://www.nabble.com/file/5642/helloworld-sa.zip
> helloworld-sa.zip 
> 
> Massimo
> 

-- 
View this message in context: 
http://www.nabble.com/Expose-external-web-service-with-http-component-%28very-simplified%29-tf3014055s12049.html#a8386698
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Reply via email to