Author Message
DavidMatthews3
Joined: Nov 15, 2012
Messages: 11
Offline
I have an application that is integrating to multiple Web Services. We are using the Web Service connectors in AAOD. In AAOD 6 everything is working fine. When we migrated from AAOD 6 to AAOD 7 the Web Services are no longer working. It seems the problem is the Service Request xml that is generated at runtime is not valid. We are using Axis 2. Any help is appreciated. Below are the Web Service requests:

[b]Web Service Request in AAOD 6 -> [/b]

<?xml version='1.0' encoding='utf-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ns1:getCustomerProfile xmlns:ns1="http://www.smud.org/WebServices">
<ns1:getCustomerProfile>
<contractAccount>112232</contractAccount>
<deviceNumber></deviceNumber>
<phone></phone>
<ani></ani>
<ssn></ssn>
<houseNumber>2346</houseNumber>
<useShadow>N</useShadow>
</ns1:getCustomerProfile>
</ns1:getCustomerProfile>
</soapenv:Body>
</soapenv:Envelope>


[b]Web Service Request in AAOD 7 -> [/b]
<?xml version='1.0' encoding='utf-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body />
</soapenv:Envelope>
SamareshKowshik
Joined: Nov 6, 2013
Messages: 351
Offline
Can you attach the WSDL so I can take a look? Also, have you seen what happens if you create a fresh WSOP, or perhaps recreating the existing WSOP? Make sure that there are no errors in the operation file as well.
DavidMatthews3
Joined: Nov 15, 2012
Messages: 11
Offline
I did actually try generating a new WSOP and I get the same error.

I've attached the WSDL file I'm using.

Thanks for your reply.

Filename SmIVR.AccountServices.ws_1_v7.wsdl [Disk] Download
SamareshKowshik
Joined: Nov 6, 2013
Messages: 351
Offline
Okay, I see what the issue is. OD 7 uses the latest version of Axis2, 1.6.2, which enforces a particular part of the XML spec which wasn't enforced before. There is an exception that's thrown before the call is made:


java.lang.IllegalArgumentException: Cannot create a prefixed element with an empty namespace name
at org.apache.axiom.om.impl.llom.OMElementImpl.handleNamespace(OMElementImpl.java:195)
at org.apache.axiom.om.impl.llom.OMElementImpl.setNamespace(OMElementImpl.java:913)
...


That basically means that in your schema, you have prefixed elements without a namespace assigned, or rather being assigned to the empty namespace. Just to clarify, the an element prefix is the bit before the element name, used to help avoid naming conflicts. So if you have an element:

<xs: title>

The prefix is "xs".

I am able to fix the problem rather easily by adding an attribute to the schema declaration. The line:

<xsd:schema targetNamespace="http://www.smud.org/WebServices">

becomes:

<xsd:schema targetNamespace="http://www.smud.org/WebServices" elementFormDefault="qualified">

elementFormDefault indicates that any element that would be assigned to the empty namespace shall instead use the parent namespace. Once I add that in, OD produces the following console output:


13/05/2014 16:22:33:085 INFO - 9FFAC2884283BAF91FDD1B8E7AD8E11A:/asdf : Calling method [{http://www.smud.org/WebServices}getCustomerProfile] on web service [untitled3] at [http://SNDESBIS01.corporate.smud.org:5555/ws/SmIVR.AccountServices.ws.provider.AccountServicesManagementService/SmIVR_AccountServices_ws_provider_IVRAccountServices_Port]
13/05/2014 16:22:33:570 DEBUG - 9FFAC2884283BAF91FDD1B8E7AD8E11A:/asdf : Web Service Request -> <?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><ns1:getCustomerProfile xmlns:ns1="http://www.smud.org/WebServices"><ns1:getCustomerProfile><ns1:contractAccount>4545</ns1:contractAccount><ns1:deviceNumber>111</ns1:deviceNumber><ns1:phone>5555555</ns1:phone><ns1:ani>23</ns1:ani><ns1:ssn>000000000</ns1:ssn><ns1:houseNumber></ns1:houseNumber><ns1:useShadow>true</ns1:useShadow></ns1:getCustomerProfile></ns1:getCustomerProfile></soapenv:Body></soapenv:Envelope>


One thing to keep in mind here is that while you are technically allowed to make this sort of change, I can't guarantee the web service itself will be happy. Then again, it could work without a hitch.
DavidMatthews3
Joined: Nov 15, 2012
Messages: 11
Offline
That's great! It's working now!! Thanks.
YasinUNAL
Joined: Nov 12, 2013
Messages: 36
Offline
Hi,

We're using AOD7 and creating our web service operation by using wsop2 file. As I know, AOD 7.0 uses Axis 1.6.2.

When calling web service we're also getting exception [java.lang.IllegalArgumentException]. Message [Cannot create a prefixed element with an empty namespace name].

When we check our wsdl file, we have elementFormDefault="qualified" for all <xsd:sxhema> tags of each method, except <wsdl:definitions> tag.

Could you please support us? do you think that AOD 7.0 feature pack 1 will solve this issue? Is this issue related to Axis or wsdl file?

If you can give your email contact address, I can send the wsdl file.


01/04/2015 13:51:33 INFO - 51E0A3E4A9340A1E6DE5940A497B5CD7:/VFShopDestek : Using SCESession 51E0A3E4A9340A1E6DE5940A497B5CD7:/VFShopDestek servlet : inquirySiebelShopInfo-wsInquiryShopInfo
01/04/2015 13:51:33 INFO - 51E0A3E4A9340A1E6DE5940A497B5CD7:/VFShopDestek : Calling method [{http://vodafone.com.tr/ServiceCatalog/Business/SiebelServices}GetShopDetails_v1] on web service [SiebelServices] at [http://172.31.70.139:10037/ServiceCatalog/SiebelServices]
01/04/2015 13:51:33 ERROR - 51E0A3E4A9340A1E6DE5940A497B5CD7:/VFShopDestek : Failed generating axis2 soap envelope: Cannot create a prefixed element with an empty namespace name
01/04/2015 13:51:33 INFO - 51E0A3E4A9340A1E6DE5940A497B5CD7:/VFShopDestek : Capturing exception [java.lang.IllegalArgumentException]. Message [Cannot create a prefixed element with an empty namespace name]
01/04/2015 13:51:33 DEBUG - 51E0A3E4A9340A1E6DE5940A497B5CD7:/VFShopDestek : session id:sess2433477 | VFShopDestek:inquirySiebelShopInfo-wsInquiryShopInfo | EXCEPTION : | ddLastException:stacktrace : java.lang.IllegalArgumentException: Cannot create a prefixed element with an empty namespace name
at org.apache.axiom.om.impl.llom.OMElementImpl.handleNamespace(OMElementImpl.java:195)
at org.apache.axiom.om.impl.llom.OMElementImpl.setNamespace(OMElementImpl.java:913)
at org.apache.axiom.om.impl.llom.OMElementImpl.<init>(OMElementImpl.java:148)
at org.apache.axiom.om.impl.llom.OMElementImpl.<init>(OMElementImpl.java:128)
at org.apache.axiom.om.impl.llom.factory.OMLinkedListImplFactory.createOMElement(OMLinkedListImplFactory.java:76)
at com.avaya.sce.runtime.connectivity.ws2.CallService.wsopParamToOMElement(CallService.java:751)
at com.avaya.sce.runtime.connectivity.ws2.CallService.wsopParamToOMElement(CallService.java:811)
at connectivity.ws.operations.inquirySiebelShopInfo.toEnvelope(inquirySiebelShopInfo.java:105)
at com.avaya.sce.runtime.connectivity.ws2.DDAxis2Stub.toEnvelope(DDAxis2Stub.java:212)
at com.avaya.sce.runtime.connectivity.ws2.DDAxis2Stub.execute(DDAxis2Stub.java:86)
at com.avaya.sce.runtime.connectivity.ws2.CallService.execute(CallService.java:388)
at com.avaya.sce.runtime.Data.evaluateActions(Data.java:191)
at flow.subflow.inquirySiebelShopInfo.wsInquiryShopInfo.executeDataActions(wsInquiryShopInfo.java:101)
at com.avaya.sce.runtime.Data.handleRequest(Data.java:104)
at com.avaya.sce.runtime.AppServlet.processRequest(AppServlet.java:96)
at com.avaya.sce.runtime.SCEServlet.requestHandler(SCEServlet.java:285)
at com.avaya.sce.runtime.SCEServlet.doPost(SCEServlet.java:190)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:471)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329)
at com.avaya.sce.runtime.SCEServlet.forward(SCEServlet.java:1348)
at com.avaya.sce.runtime.Data.handleRequest(Data.java:153)
at com.avaya.sce.runtime.AppServlet.processRequest(AppServlet.java:96)
at com.avaya.sce.runtime.SCEServlet.requestHandler(SCEServlet.java:285)
at com.avaya.sce.runtime.SCEServlet.doPost(SCEServlet.java:190)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:471)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329)
at com.avaya.sce.runtime.SCEServlet.forward(SCEServlet.java:1348)
at com.avaya.sce.runtime.BasicServlet.handleRequest(BasicServlet.java:116)
at com.avaya.sce.runtime.AppServlet.processRequest(AppServlet.java:96)
at com.avaya.sce.runtime.SCEServlet.requestHandler(SCEServlet.java:285)
at com.avaya.sce.runtime.SCEServlet.doPost(SCEServlet.java:190)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:471)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329)
at com.avaya.sce.runtime.SCEServlet.forward(SCEServlet.java:1348)
at com.avaya.sce.runtime.Subflow.handleRequest(Subflow.java:35)
at com.avaya.sce.runtime.AppServlet.processRequest(AppServlet.java:96)
at com.avaya.sce.runtime.SCEServlet.requestHandler(SCEServlet.java:285)
at com.avaya.sce.runtime.SCEServlet.doPost(SCEServlet.java:190)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:471)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329)
at com.avaya.sce.runtime.SCEServlet.forward(SCEServlet.java:1348)
at com.avaya.sce.runtime.SubflowReturn.handleRequest(SubflowReturn.java:120)
at com.avaya.sce.runtime.AppServlet.processRequest(AppServlet.java:96)
at com.avaya.sce.runtime.SCEServlet.requestHandler(SCEServlet.java:285)
at com.avaya.sce.runtime.SCEServlet.doPost(SCEServlet.java:190)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:471)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329)
at com.avaya.sce.runtime.SCEServlet.forward(SCEServlet.java:1348)
at com.avaya.sce.runtime.Data.handleRequest(Data.java:153)
at com.avaya.sce.runtime.AppServlet.processRequest(AppServlet.java:96)
at com.avaya.sce.runtime.SCEServlet.requestHandler(SCEServlet.java:285)
at com.avaya.sce.runtime.SCEServlet.doPost(SCEServlet.java:190)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

01/04/2015 13:51:33 INFO - 51E0A3E4A9340A1E6DE5940A497B5CD7:/VFShopDestek : Using SCESession 51E0A3E4A9340A1E6DE5940A497B5CD7:/VFShopDestek servlet : inquirySiebelShopInfo-wsInquiryShopInfoErrorLog
SamareshKowshik
Joined: Nov 6, 2013
Messages: 351
Offline
That error is coming from Axis2, so we have no way to "fix" anything ourselves. Still, making sure that all prefixed elements aren't within the empty namespace should solve the problem. I'll take a look.

You can send the WSDL file to:

srkowshik@avaya.com
HuseyinAksu2
Joined: Dec 26, 2013
Messages: 99
Offline
Hi Samaresh,

I sent the wsdl to your inbox.


Thank you.
HuseyinAksu2
Joined: Dec 26, 2013
Messages: 99
Offline
Hi,

Is it possible to give a response today ?

Thank you.
HuseyinAksu2
Joined: Dec 26, 2013
Messages: 99
Offline
Is there any advance ?

Thank you.
SamareshKowshik
Joined: Nov 6, 2013
Messages: 351
Offline
Sorry for such a late response.

I'm able to reproduce the error you're seeing, and the easiest solution I can find is unchecking the Unwrap input/output parameters boxes when creating the WSOP. Then what I did was write some Java code in the Data node, or you could use a servlet before the Data node, to set values:


@Override
public void requestBegin(SCESession mySession) {
super.requestBegin(mySession);

GetShopDetails_v1 shop= new GetShopDetails_v1();
GetShopDetailsRequest details = new GetShopDetailsRequest();

Request166 req166 = new Request166();
req166.setShopId("shopID");

details.setRequest(req166);

shop.setBody(details);

mySession.getVariableField(IProjectVariables.GET_SHOP_DETAILS__V_1).setValue(shop);
}


Doing that, and simulating the service using SoapUI, I'm able to get a request/response:


08/04/2015 03:32:11:126 INFO - Node Entry | session id:sess4180572 | prefixedElement:untitledData1 | Framework | untitledData1 | | | undefined
08/04/2015 03:32:11:177 INFO - 1EF15FB88BEC90EF558DE15519F8EABF:/prefixedElement : Calling method [{http://vodafone.com.tr/ServiceCatalog/Business/SiebelServices}GetShopDetails_v1] on web service [SiebelServices] at [http://localhost:8088/mockHTTPBindingBinding]
08/04/2015 03:32:11:600 DEBUG - 1EF15FB88BEC90EF558DE15519F8EABF:/prefixedElement : Collecting [connectivity.ws.beans1.SiebelServicesStub$GetShopDetails_v1@2111e1] from:GetShopDetails_v1
08/04/2015 03:32:11:641 DEBUG - 1EF15FB88BEC90EF558DE15519F8EABF:/prefixedElement : Web Service Request -> <?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><ns62:GetShopDetails_v1 xmlns:ns62="http://vodafone.com.tr/ServiceCatalog/Business/SiebelServices"><Header xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="1" /><Body><Request xmlns="http://vodafone.com.tr/ServiceCatalog/Business/PartnerManagement/GetShopDetails/v1"><ShopId>shopID</ShopId></Request></Body></ns62:GetShopDetails_v1></soapenv:Body></soapenv:Envelope>
08/04/2015 03:32:11:866 DEBUG - 1EF15FB88BEC90EF558DE15519F8EABF:/prefixedElement : Web Service Reply <- <?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v1="http://vodafone.com.tr/ServiceCatalog/Business/PartnerManagement/GetShopDetails/v1" xmlns:res="http://vodafone.com.tr/EAI/Common/ResponseCodes" xmlns:sieb="http://vodafone.com.tr/ServiceCatalog/Business/SiebelServices"><soapenv:Body>
<sieb:GetShopDetails_v1Response>
<Header>
<res:ResponseCode>?</res:ResponseCode>
<!--Optional:-->
<res:ResponseMsg>?</res:ResponseMsg>
<!--Optional:-->
<res:ErrorCode>?</res:ErrorCode>
<!--Optional:-->
<res:ErrorDescription>?</res:ErrorDescription>
<!--Optional:-->
<res:RequestId>?</res:RequestId>
<!--Optional:-->
<res:Domain>?</res:Domain>
<!--Optional:-->
<res:Service>?</res:Service>
<!--Optional:-->
<res:Operation>?</res:Operation>
<!--Optional:-->
<res:Version>?</res:Version>
<!--Optional:-->
<res:Attributes>
<!--Zero or more repetitions:-->
<res:Attribute>
<res:Name>?</res:Name>
<res:Value>?</res:Value>
</res:Attribute>
</res:Attributes>
</Header>
<Body>
<!--Optional:-->
<v1:Response>
<v1:ShopId>?</v1:ShopId>
<v1:ShopName>?</v1:ShopName>
<v1:ShopType>?</v1:ShopType>
<v1:ShopRegionId>?</v1:ShopRegionId>
<v1:ShopStatus>?</v1:ShopStatus>
</v1:Response>
</Body>
</sieb:GetShopDetails_v1Response>
</soapenv:Body></soapenv:Envelope>
08/04/2015 03:32:11:912 DEBUG - 1EF15FB88BEC90EF558DE15519F8EABF:/prefixedElement : Storing [connectivity.ws.beans1.SiebelServicesStub$GetShopDetails_v1Response@19ee9af] to: GetShopDetails_v1Response


The response would also need to be handled with code, though it's possible you could leave the Unwrap output parameters box checked, and let OD do some of the parsing. I don't have the actual service, so I'm not 100% certain.
HuseyinAksu2
Joined: Dec 26, 2013
Messages: 99
Offline
Which OD version are you using ?

Thank you.
SamareshKowshik
Joined: Nov 6, 2013
Messages: 351
Offline
I'm using OD 7.0.
NilasheeLiyanapathirana2
Joined: May 24, 2012
Messages: 93
Offline
Hello,
I am also having the same error with OD 7.2 and using Axis2 wsop. Can you please check the attached wsdl to see if any tweaking needs to be done?

Thanks
Filename CTI Verification.wsdl [Disk] Download
Go to:   
Mobile view