Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » BIRT » BIRT is missing SOAP request parameters(BIRT does nto show the available request parameters for a SOAP request)
BIRT is missing SOAP request parameters [message #1769539] Tue, 01 August 2017 12:10 Go to next message
Markus Haudum is currently offline Markus HaudumFriend
Messages: 2
Registered: August 2017
Junior Member
I setup a running webservice (SOAP via JAX-WS) which has already some working Java and C# clients without any issues.

When I try to use the same SOAP webservice with BIRT I found out that in the generated request it is missing the parameters for the functions.

How can I help BIRT find the missing method parameters?

I already posted this on stackoverflow with all the source code but I got no answer.

Here is the link: https://stackoverflow.com/questions/45434364/birt-is-missing-soap-request-parameters

[Updated on: Wed, 02 August 2017 09:43]

Report message to a moderator

Re: BIRT is missing SOAP request parameters [message #1769589 is a reply to message #1769539] Wed, 02 August 2017 05:17 Go to previous message
Markus Haudum is currently offline Markus HaudumFriend
Messages: 2
Registered: August 2017
Junior Member
Here are the necessary code snippets.

Generated Request (Missing parameter)

    <?xml version="1.0"?>
    <SOAP-ENV:Envelope
    xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    	<SOAP-ENV:Body>
    		<m:getMachine xmlns:m="http://machine.soap.webservices.product.company.at/">
    		</m:getMachine>
    	</SOAP-ENV:Body>
    </SOAP-ENV:Envelope>


Request that I would expect (With parameter)

 <?xml version="1.0"?>
    <SOAP-ENV:Envelope
    xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    	<SOAP-ENV:Body>
    		<m:getMachine xmlns:m="http://machine.soap.webservices.product.company.at/">
    			<m:machineId>&?machineId?&</m:machineId>
    		</m:getMachine>
    	</SOAP-ENV:Body>
    </SOAP-ENV:Envelope>


WSDL

<?xml version="1.0" encoding="UTF-8"?>
    <!-- Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.2.4-b01. -->
    <!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.2.4-b01. -->
    <definitions
    	xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
    	xmlns:wsp="http://www.w3.org/ns/ws-policy" 
    	xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" 
    	xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" 
    	xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
    	xmlns:tns="http://machine.soap.webservices.product.company.at/" 
    	xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    	xmlns="http://schemas.xmlsoap.org/wsdl/" 
    	targetNamespace="http://machine.soap.webservices.product.company.at/"
    	name="WSMachineApiService">
    	
    	<types>
    		<xs:schema 
    			xmlns:tns="http://machine.soap.webservices.product.company.at/"
    			xmlns:xs="http://www.w3.org/2001/XMLSchema"
    			version="1.0"
    			targetNamespace="http://machine.soap.webservices.product.company.at/">
    
    			<xs:element name="InvalidIdException" type="tns:InvalidIdException"></xs:element>
    
    			<xs:element name="getMachine" type="tns:getMachine"></xs:element>
    
    			<xs:element name="getMachineResponse" type="tns:getMachineResponse"></xs:element>
    
    			<xs:complexType name="getMachine">
    				<xs:sequence>
    					<xs:element name="machineId" type="xs:string" form="qualified"></xs:element>
    				</xs:sequence>
    			</xs:complexType>
    
    			<xs:complexType name="getMachineResponse">
    				<xs:sequence>
    					<xs:element name="return" type="tns:WSMachine" minOccurs="0"></xs:element>
    				</xs:sequence>
    			</xs:complexType>
    
    			<xs:complexType name="WSMachine">
    				<xs:sequence>
    					<xs:element name="name" type="xs:string" minOccurs="0"></xs:element>
    					<xs:element name="id" type="xs:string" minOccurs="0"></xs:element>
    					<xs:element name="totalShots" type="xs:long"></xs:element>
    					<xs:element name="totalEvents" type="xs:long"></xs:element>
    					<xs:element name="actualData" type="tns:WSMachineActualData" minOccurs="0"></xs:element>
    				</xs:sequence>
    			</xs:complexType>
    
    			<xs:complexType name="WSMachineActualData">
    				<xs:sequence>
    					<xs:element name="name" type="xs:string" minOccurs="0"></xs:element>
    					<xs:element name="id" type="xs:string" minOccurs="0"></xs:element>
    					<xs:element name="connected" type="xs:boolean"></xs:element>
    					<xs:element name="operationMode" type="xs:string" minOccurs="0"></xs:element>
    					<xs:element name="moldData" type="xs:string" minOccurs="0"></xs:element>
    					<xs:element name="cycleTime" type="xs:long"></xs:element>
    					<xs:element name="totalProduction" type="xs:int"></xs:element>
    					<xs:element name="currentProduction" type="xs:int"></xs:element>
    					<xs:element name="remainingProduction" type="xs:int"></xs:element>
    					<xs:element name="rejectedParts" type="xs:int"></xs:element>
    					<xs:element name="remainingTime" type="xs:long"></xs:element>
    				</xs:sequence>
    			</xs:complexType>
    
    			<xs:complexType name="InvalidIdException">
    				<xs:sequence>
    					<xs:element name="id" type="xs:string" minOccurs="0"></xs:element>
    					<xs:element name="message" type="xs:string" minOccurs="0"></xs:element>
    				</xs:sequence>
    			</xs:complexType>
    		</xs:schema>
    
    	</types>
    
    	<message name="getMachine">
    		<part name="parameters" element="tns:getMachine"></part>
    	</message>
    
    	<message name="getMachineResponse">
    		<part name="parameters" element="tns:getMachineResponse"></part>
    	</message>
    
    	<message name="InvalidIdException">
    	<part name="fault" element="tns:InvalidIdException"></part>
    	</message>
    
    	<portType name="WSMachineApi">
    		<operation name="getMachine">
    			<input wsam:Action="http://machine.soap.webservices.product.company.at/WSMachineApi/getMachineRequest" message="tns:getMachine"></input>
    			<output wsam:Action="http://machine.soap.webservices.product.company.at/WSMachineApi/getMachineResponse" message="tns:getMachineResponse"></output>
    			<fault message="tns:InvalidIdException" name="InvalidIdException" wsam:Action="http://machine.soap.webservices.product.company.at/WSMachineApi/getMachine/Fault/InvalidIdException"></fault>
    		</operation>
    	</portType>
    
    	<binding name="WSMachineApiPortBinding" type="tns:WSMachineApi">
    		<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"></soap:binding>
    		<operation name="getMachine">
    		<soap:operation soapAction=""></soap:operation>
    			<input>
    				<soap:body use="literal"></soap:body>
    			</input>
    			
    			<output>
    				<soap:body use="literal"></soap:body>
    			</output>
    			
    			<fault name="InvalidIdException">
    				<soap:fault name="InvalidIdException" use="literal"></soap:fault>
    			</fault>
    		</operation>
    	</binding>
    
    	<service name="WSMachineApiService">
    		<port name="WSMachineApiPort" binding="tns:WSMachineApiPortBinding">
    			<soap:address location="http://localhost:8080/services/Machines"></soap:address>
    		</port>
    	</service>
    </definitions>


WS- Implementation

 package at.company.product.webservices.soap.machine;
    
    import javax.jws.WebMethod;
    import javax.jws.WebParam;
    import javax.jws.WebService;
    import javax.jws.soap.SOAPBinding;
    import javax.xml.bind.annotation.XmlElement;
    
    import at.company.product.core.ProductCorePlugin;
    import at.company.product.core.machine.IMachine;
    import at.company.product.webservices.soap.exceptions.InvalidIdException;
    
    
    @WebService(targetNamespace = "http://machine.soap.webservices.product.company.at/")
    @SOAPBinding(style=SOAPBinding.Style.DOCUMENT, parameterStyle=SOAPBinding.ParameterStyle.WRAPPED)
    public class WSMachineApi {
    
    	@WebMethod
    	public WSMachine getMachine(
    			@WebParam(name = "machineId", targetNamespace = "http://machine.soap.webservices.product.company.at/")  @XmlElement(required=true,nillable=false) String machineId) throws InvalidIdException {
    		IMachine machine = getMachineById(machineId);
    		if (machine == null) {
    			throw new InvalidIdException(machineId);
    		}
    
    		return new WSMachine(getMachineById(machineId));
    	}
    
    
    	private IMachine getMachineById(String id) {
    		return ProductCorePlugin.getDefault().getMachineHallAdmin().getMachineByID(id);
    	}
    
    }
Previous Topic:Maintaining Dataset structure for mongodb sourced datasets
Next Topic:org.eclipse.birt.level
Goto Forum:
  


Current Time: Thu Aug 16 01:00:38 GMT 2018

Powered by FUDForum. Page generated in 0.02025 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top