Hi,

I tried to use different target namespaces in the wsdl file and the bpel file. 
I took the helloWorld example and modified the wsdl file to have a different 
targetnamespace and the bpel file to reference portTpyes, messages etc. in the 
correct namespace. When I start the generate-service ant task, I end up with 
the following exception:
[servicegen] 11:30:08,453 ERROR ProblemCollector :  could not write service 
wsdl: service.wsdl
  | [servicegen] WSDLException: faultCode=OTHER_ERROR: Can't find prefix for 
'http://jbpm.org/examples/hello/wsdl'. Namespace prefixes must be set on the 
Definition object using the addNamespace(...) method.:
  | [servicegen]    at com.ibm.wsdl.util.xml.DOMUtils.getPrefix(Unknown Source)
  | [servicegen]    at com.ibm.wsdl.util.xml.DOMUtils.getQualifiedValue(Unknown 
Source)
  | [servicegen]    at 
com.ibm.wsdl.util.xml.DOMUtils.printQualifiedAttribute(Unknown Source)
  | [servicegen]    at com.ibm.wsdl.xml.WSDLWriterImpl.printPorts(Unknown 
Source)
  | [servicegen]    at com.ibm.wsdl.xml.WSDLWriterImpl.printServices(Unknown 
Source)
  | [servicegen]    at com.ibm.wsdl.xml.WSDLWriterImpl.printDefinition(Unknown 
Source)
  | [servicegen]    at com.ibm.wsdl.xml.WSDLWriterImpl.writeWSDL(Unknown Source)
  | [servicegen]    at 
org.jbpm.bpel.wsdl.util.WsdlUtil.writeFile(WsdlUtil.java:85)
  | [servicegen]    at 
org.jbpm.bpel.wsdl.util.ServiceGenerator.generatePortComponents(ServiceGenerator.java:150)
  | [servicegen]    at 
org.jbpm.bpel.ant.ServiceGeneratorTask.execute(ServiceGeneratorTask.java:42)
  | [servicegen]    at 
org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
  | [servicegen]    at org.apache.tools.ant.Task.perform(Task.java:364)
  | [servicegen]    at org.apache.tools.ant.Target.execute(Target.java:341)
  | [servicegen]    at org.apache.tools.ant.Target.performTasks(Target.java:369)
  | [servicegen]    at 
org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
  | [servicegen]    at 
org.apache.tools.ant.Project.executeTarget(Project.java:1185)
  | [servicegen]    at 
org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40)
  | [servicegen]    at 
org.apache.tools.ant.Project.executeTargets(Project.java:1068)
  | [servicegen]    at org.apache.tools.ant.Main.runBuild(Main.java:668)
  | [servicegen]    at org.apache.tools.ant.Main.startAnt(Main.java:187)
  | [servicegen]    at 
org.apache.tools.ant.launch.Launcher.run(Launcher.java:246)
  | [servicegen]    at 
org.apache.tools.ant.launch.Launcher.main(Launcher.java:67)

Here is my hello.bpel:
<?xml version="1.0" encoding="UTF-8"?>
  | <process name="helloWorld" targetNamespace="http://jbpm.org/examples/hello";
  |   xmlns:tns="http://jbpm.org/examples/hello";
  |   xmlns:wsdl="http://jbpm.org/examples/hello/wsdl";
  |   xmlns:bpel="http://schemas.xmlsoap.org/ws/2003/03/business-process/";
  |   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
  |   
xsi:schemaLocation="http://schemas.xmlsoap.org/ws/2003/03/business-process/
  |                       
http://schemas.xmlsoap.org/ws/2003/03/business-process/";
  |   xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/";>
  | 
  |   <partnerLinks>
  |     <!-- realizes the abstract relationship with the caller -->
  |     <partnerLink name="caller" partnerLinkType="wsdl:helloPLT" 
myRole="service"/>
  |   </partnerLinks>
  | 
  |   <variables>
  |     <!-- holds the incoming message -->
  |     <variable name="request" messageType="wsdl:nameMessage"/>
  |      <!-- holds the outgoing message -->
  |     <variable name="response" messageType="wsdl:greetingMessage"/>
  |   </variables>
  | 
  |   <sequence>
  |     <!-- receive a message carrying the name of a person -->
  |     <receive operation="sayHello" partnerLink="caller" 
portType="wsdl:helloPT" 
  |      variable="request" createInstance="yes"/>
  |     <!-- compose a greeting phrase containing the name -->
  |     <assign>
  |       <copy>
  |         <from expression="concat('Hello, ', 
  |                           bpel:getVariableData('request', 'name'), '!')"/>
  |         <to variable="response" part="greeting"/>
  |       </copy>
  |     </assign>
  |     <!-- reply with a message carrying the greeting -->
  |     <reply operation="sayHello" partnerLink="caller" portType="wsdl:helloPT"
  |      variable="response"/>
  |   </sequence>
  | 
  | </process>

My hello.wsdl:
<?xml version="1.0" encoding="UTF-8"?>
  | <definitions targetNamespace="http://jbpm.org/examples/hello/wsdl";
  |   xmlns:tns="http://jbpm.org/examples/hello/wsdl"; 
  |   xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
  |   xmlns:plt="http://schemas.xmlsoap.org/ws/2003/05/partner-link/"; 
  |   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
  |   xsi:schemaLocation="http://schemas.xmlsoap.org/wsdl/ 
  |                       http://schemas.xmlsoap.org/wsdl/
  |                       http://schemas.xmlsoap.org/ws/2003/05/partner-link/ 
  |                       http://schemas.xmlsoap.org/ws/2003/05/partner-link/";  
 
  |   xmlns="http://schemas.xmlsoap.org/wsdl/";>
  |   
  |   <!-- characterizes the relationship between the process and its caller -->
  |   <plt:partnerLinkType name="helloPLT">
  |     <plt:role name="service">
  |       <plt:portType name="tns:helloPT"/>
  |     </plt:role>
  |   </plt:partnerLinkType>
  | 
  |   <!-- carries the name of a person -->
  |   <message name="nameMessage">
  |     <part name="name" type="xsd:string"/>
  |   </message>
  | 
  |   <!-- carries the greeting -->
  |   <message name="greetingMessage">
  |     <part name="greeting" type="xsd:string"/>
  |   </message>
  | 
  |   <!-- describes the interface presented to callers -->
  |   <portType name="helloPT">
  |     <operation name="sayHello">
  |       <input message="tns:nameMessage"/>
  |       <output message="tns:greetingMessage"/>
  |     </operation>
  |   </portType>
  | 
  | </definitions>

and the bpel-definition.xml:
<?xml version="1.0" encoding="UTF-8"?>
  | <!-- specifies the location of the process definition -->
  | <bpelDefinition location="hello.bpel" 
  |   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
  |   xsi:schemaLocation="http://jbpm.org/bpel
  |                       http://jbpm.org/bpel/bpel_definition_1_0.xsd";
  |   xmlns="http://jbpm.org/bpel"; >
  | 
  |   <!-- makes WSDL interface elements available to the process -->
  |     <imports>
  |       <wsdl namespace="http://jbpm.org/examples/hello/wsdl"; 
location="hello.wsdl"/>
  |   </imports>
  | 
  | </bpelDefinition>

Looking at the code, I found that only the target namespace of the bpel file is 
added to the Definition object from which the service.wsdl is generated.  Could 
this be a bug?

Regards,
stone_42

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3913519#3913519

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3913519


-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
JBoss-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to