Problem using my WebService in Presto

cyper
User offline. Last seen 2 years 51 weeks ago. Offline
Joined: 05/12/2009
Points: 10

Hello!

I'm new to Presto and try to integrate it for to a small university project. I have written a small WebService to retrieve customer data. I provide the WebService a customer name and it returns me the address. Now I included the WebService to Presto using the WSDL file. The query works but Presto does not show the result. I tested the WebService with Netbeans and it works fine: It returns a String. But the result cannot be shown in my Mashup.

Can you give me any advice?

Thank you very much!

This is the request message:

<?xml version="1.0" encoding="UTF-8"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Header/>
<S:Body>
<ns2:getCustomer xmlns:ns2="http://h_da/">
<name>hutzel</name>
</ns2:getCustomer>
</S:Body>
</S:Envelope>

This is the exspected response

<?xml version="1.0" encoding="UTF-8"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:getCustomerResponse xmlns:ns2="http://h_da/">
<return>3;Jan;Hutzel;Street 16a 12345 Mytown Germany</return>
</ns2:getCustomerResponse>
</S:Body>
</S:Envelope>

But this is the actual response that Preso shows:

<?xml version="1.0" encoding="UTF-8"?>
<ns2:getCustomerResponse xmlns:S="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns2="http://h_da/"/>

 

 

 

0
Your rating: None
cyper
User offline. Last seen 2 years 51 weeks ago. Offline
Joined: 05/12/2009
Points: 10

I have written a small php program that uses the same webservice and it works. Just Prosto seems to have problems. It seems like Presto is not even sending the appropriate parameters to the service.

What can I do?

aishmishra
aishmishra's picture
User offline. Last seen 25 weeks 3 days ago. Offline
Joined: 09/24/2008
Points: 3

 Hi Cyper,

Can you check the response of the WSDL from Service Inspector too. (Service Inspector a tool which is part of Mashup Studio)?

Also can you pass on the WSDL that you are using?

cyper
User offline. Last seen 2 years 51 weeks ago. Offline
Joined: 05/12/2009
Points: 10

Hi there,

after I changed the server, the WebService runs fine if I test it through the green play-button in Wires. It returns the correct Information. But after I save the mashup publish it and try to create a Meshlet, the following error occurs: "Error Generating NSD info for Service". In the Log-file it says: "Unable to perfom specified request".

Any idea how to fix this or were to have a closer look? Ports?

Thank you very much!

This is the WSDL file:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<definitions targetNamespace="http://hda/" name="CustomerInformationService" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://hda/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<types>
<xsd:schema>
<xsd:import namespace="http://hda/" schemaLocation="CustomerInformationService_schema1.xsd"/>
</xsd:schema>
</types>
<message name="getCustomer">
<part name="parameters" element="tns:getCustomer"/>
</message>
<message name="getCustomerResponse">
<part name="parameters" element="tns:getCustomerResponse"/>
</message>
<portType name="CustomerInformation">
<operation name="getCustomer">
<input message="tns:getCustomer"/>
<output message="tns:getCustomerResponse"/>
</operation>
</portType>
<binding name="CustomerInformationPortBinding" type="tns:CustomerInformation">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
<operation name="getCustomer">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="CustomerInformationService">
<port name="CustomerInformationPort" binding="tns:CustomerInformationPortBinding">
<soap:address location="http://xxx.dyndns.org:8080/Customer_Webservice/CustomerInformationService"/>
</port>
</service>
</definitions>

raj
raj's picture
User offline. Last seen 3 weeks 4 days ago. Offline
Joined: 09/22/2008
Points: 4

1. Can you also paste your XSD file i.e., CustomerInformationService_schema1.xsd

2.  Also, please paste the exception stacktrace seen in your presto log file.

raj.  chief masher @ jackbe

cyper
User offline. Last seen 2 years 51 weeks ago. Offline
Joined: 05/12/2009
Points: 10

Here is the Schema:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema version="1.0" targetNamespace="http://hda/" xmlns:tns="http://hda/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="getCustomer" type="tns:getCustomer"/>
<xs:element name="getCustomerResponse" type="tns:getCustomerResponse"/>
<xs:complexType name="getCustomer">
<xs:sequence>
<xs:element name="name" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="getCustomerResponse">
<xs:sequence>
<xs:element name="return" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:schema>

Here is the extract of the log file:

2009-05-27 08:56:38,656 ERROR [com.jackbe.jbp.sas.nsd.NSDBuilder] - Error Generating NSD info for Service : CustomerWSMashup
com.jackbe.jbp.sas.nsd.NSDException: org.jdom.IllegalNameException: The name "1.0" is not legal for JDOM/XML Namespace URIs: Namespace URIs cannot begin with a number.
    at com.jackbe.jbp.jems.services.nsd.MashupServiceNSDBuilder.generateServiceNSD(MashupServiceNSDBuilder.java:125)
    at com.jackbe.jbp.sas.nsd.NSDBuilder.buildServiceNSD(NSDBuilder.java:82)
    at com.jackbe.jbp.sas.nsd.NSDBuilder.buildServiceNSD(NSDBuilder.java:63)
    at com.jackbe.jbp.sas.nsd.NSDCache.buildServiceNSD(NSDCache.java:157)
    at com.jackbe.jbp.sas.nsd.NSDCache.getServiceNSD(NSDCache.java:138)
    at com.jackbe.jbp.sas.services.RdsUIFacadeImpl.getServiceNSD(RdsUIFacadeImpl.java:666)
    at sun.reflect.GeneratedMethodAccessor174.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.jackbe.jbp.sas.saf.spa.pojo.POJOServiceProviderAdapter.invoke(POJOServiceProviderAdapter.java:127)
    at com.jackbe.jbp.sas.sg.controller.ServiceInvokerImpl.invokeService(ServiceInvokerImpl.java:195)
    at sun.reflect.GeneratedMethodAccessor69.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
    at com.jackbe.jbp.sas.security.ServiceInvocationInterceptor.invoke(ServiceInvocationInterceptor.java:82)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
    at $Proxy12.invokeService(Unknown Source)
    at com.jackbe.jbp.sas.sg.controller.ServiceGatewayController.handleRequestInternal(ServiceGatewayController.java:269)
    at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
    at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:858)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:792)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:476)
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:441)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
    at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
    at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
    at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:124)
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
    at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
    at com.jackbe.jbp.sas.security.ui.http.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:195)
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
    at org.acegisecurity.ui.x509.X509ProcessingFilter.doFilter(X509ProcessingFilter.java:138)
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
    at com.jackbe.jbp.sas.security.ui.jump.JumpLoginProcessingFilter.doFilter(JumpLoginProcessingFilter.java:181)
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
    at com.jackbe.jbp.sas.security.ui.jump.JumpSessionIntegrationFilter.doFilter(JumpSessionIntegrationFilter.java:128)
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
    at com.jackbe.jbp.sas.security.ui.jump.JumpLogoutFilter.doFilter(JumpLogoutFilter.java:121)
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
    at com.jackbe.jbp.sas.security.ui.http.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:162)
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
    at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
    at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    at java.lang.Thread.run(Thread.java:619)
Caused by: org.jdom.IllegalNameException: The name "1.0" is not legal for JDOM/XML Namespace URIs: Namespace URIs cannot begin with a number.
    at org.jdom.Namespace.getNamespace(Namespace.java:159)
    at org.jdom.input.SAXHandler.startPrefixMapping(SAXHandler.java:471)
    at org.apache.xerces.parsers.AbstractSAXParser.startNamespaceMapping(Unknown Source)
    at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
    at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
    at org.apache.xerces.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
    at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
    at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
    at org.jdom.input.SAXBuilder.build(SAXBuilder.java:453)
    at org.jdom.input.SAXBuilder.build(SAXBuilder.java:851)
    at com.jackbe.jbp.jems.services.nsd.MashupServiceNSDBuilder.generateServiceNSD(MashupServiceNSDBuilder.java:79)
    ... 67 more
 

 

raj
raj's picture
User offline. Last seen 3 weeks 4 days ago. Offline
Joined: 09/22/2008
Points: 4

Thanks for the info. However, I am still unable to recreate the error.

1. Which Presto version are you using ?

2. In Wires, open your Mashup and choose 'View EMML' option. Please paste the EMML script that you see.

raj.  chief masher @ jackbe

cyper
User offline. Last seen 2 years 51 weeks ago. Offline
Joined: 05/12/2009
Points: 10

The version I'm using is 2.6.1

Here is the EMML file:

 

<mashup name="TestService" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.jackbe.com/2008-03-01/EMMLSchema../src/schemas/EMMLSpec.xsd" xmlns="http://www.jackbe.com/2008-03-01/EMMLSchema" xmlns:macro="http://www.jackbe.com/2008-03-01/EMMLMacro"  xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"  xmlns:ns2="http://hda/"  xmlns:targetNamespace="http://hda/"  xmlns:tns="http://hda/"  xmlns:hda="http://hda/"  xmlns:xsd="http://www.w3.org/2001/XMLSchema"  xmlns:xs="http://www.w3.org/2001/XMLSchema"  xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"  xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"  xmlns:version="1.0" ><presto-meta name="created-using">Wires</presto-meta><operation name="runMashup" >
<variable name="limitRecords" type="number" default="-2"/>
     
    <variable label="Data" name="CustomerService_3_out" type="document" default="" parentBlock="CustomerService_3" id="6">
                            </variable>
<variable label="Data" name="parameters_3_out" type="document" default="" parentBlock="parameters_3" id="5">
                            </variable>
<outputparam label="Output" name="MashupOutput" type="hda:getCustomerResponse" default="" parentBlock="CustomerService_3" service="CustomerService" id="2">
                            </outputparam>
<constructor jmmlType="constructor" label="" name="parameters_3" outputvariable="parameters_3_out" width="0" height="0" id="4">
<hda:getCustomer xmlns:hda="http://hda/" ><name>hirzel</name></hda:getCustomer></constructor>
<macro:ConditionalInvoke label="CustomerService" description="Service Operation" name="CustomerService_3" service="CustomerService" operation="getCustomer" serviceVersion="" outputvariable="MashupOutput" onerror="continue" inputvariables="parameters_3_out" condition="true()" viewConfig="" limit="$limitRecords" id="3">
                            </macro:ConditionalInvoke>
</operation></mashup>

raj
raj's picture
User offline. Last seen 3 weeks 4 days ago. Offline
Joined: 09/22/2008
Points: 4

Can you try this little experiment. For now, remove version="1.0" attribute from XSD Schema. Re-register the WSDL under a new name, and go thru the process of creating a new Mashup using this service. Let me know how it goes.

raj.  chief masher @ jackbe

cyper
User offline. Last seen 2 years 51 weeks ago. Offline
Joined: 05/12/2009
Points: 10

Yes!

This did the job! It works fine now! Although, it is wired, that the web service was running perfectly in PHP without removing the "version=1.0" stuff.

Anyways, thank you very much!

raj
raj's picture
User offline. Last seen 3 weeks 4 days ago. Offline
Joined: 09/22/2008
Points: 4

Hi,

Removing the "version" attribute is is a temp work-around for you to get going. This issue is due to a presto product bug, which has been fixed in our next release.  Let us know if you have any further issues.

 

raj.  chief masher @ jackbe