01-16-2015 07:37 AM
I'm trying to create a new line group using the following request:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <SOAP-ENV:Body> <axl:addLineGroup xmlns:axl="http://www.cisco.com/AXL/API/10.5" xsi:schemaLocation="http://www.cisco.com/AXL/API/10.5 http://ccmserver/schema/axlsoap.xsd" sequence="10"> <name>LG_test</name><distributionAlgorithm>Circular</distributionAlgorithm><rnaReversionTimeOut>10</rnaReversionTimeOut><huntAlgorithmNoAnswer>Try next member, but do not go to next group</huntAlgorithmNoAnswer><huntAlgorithmBusy>Try next member; then, try next group in Hunt List</huntAlgorithmBusy><huntAlgorithmNotAvailable>Stop hunting</huntAlgorithmNotAvailable></axl:addLineGroup> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
It fails, but the error doesn't really tell me anything.
<?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><soapenv:Fault><faultcode>soapenv:Server</faultcode><faultstring></faultstring><detail><axlError><axlcode>-1</axlcode><axlmessage></axlmessage><request>addLineGroup</request></axlError></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope>
Looking at the AXL log, I only see a nullpointer exception but it doesn't get me anywhere either:
2015-01-16 16:19:41,539 ERROR [http-bio-443-exec-10] axlapiservice.AXLAPIServiceSkeleton - com.cisco.www.axlapiservice.AXLAPIServiceSkeleton@23d6e4
java.lang.NullPointerException
at com.cisco.www.axlapiservice.AddLineGroupHandler.doAdd(AddLineGroupHandler.java:32)
at com.cisco.www.axlapiservice.AXLAPIServiceSkeleton.addLineGroup(AXLAPIServiceSkeleton.java:5648)
at com.cisco.www.axlapiservice.AXLAPIServiceMessageReceiverInOut.addLineGroup(AXLAPIServiceMessageReceiverInOut.java:7593)
at com.cisco.www.axlapiservice.AXLAPIServiceMessageReceiverInOut.invokeBusinessLogic(AXLAPIServiceMessageReceiverInOut.java:847)
at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:100)
at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:176)
at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275)
at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:131)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:748)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:486)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:411)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:338)
at com.cisco.www.servletRouters.AXLAlpha.forwardToAxis(AXLAlpha.java:175)
at com.cisco.www.servletRouters.AXLAlpha.doPost(AXLAlpha.java:62)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at com.cisco.www.servletRouters.filters.ThrottlingFilter.doFilter(ThrottlingFilter.java:66)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at com.cisco.vos.platform.tomcat.valves.CiscoResponseHeaderFilter.doFilter(Unknown Source)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at com.cisco.www.servletRouters.filters.NormalizeHeaderFilter.doFilter(NormalizeHeaderFilter.java:50)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at com.cisco.www.servletRouters.filters.AuthenticationFilter.doFilter(AuthenticationFilter.java:57)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at com.cisco.www.servletRouters.filters.TimingFilter.doFilter(TimingFilter.java:41)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:610)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:312)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:315)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
I activated troubleshooting traces for axl and database layer monitor and tried again, but I'm not getting anything from the database so it seems things go wrong even before that. Any ideas?
01-16-2015 08:00 AM
This worked fine for me:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.cisco.com/AXL/API/10.5">
<soapenv:Header/>
<soapenv:Body>
<ns:addLineGroup sequence="?">
<lineGroup>
<name>LG_test</name>
<distributionAlgorithm>Circular</distributionAlgorithm>
<rnaReversionTimeOut>10</rnaReversionTimeOut>
<huntAlgorithmNoAnswer>Try next member, but do not go to next group</huntAlgorithmNoAnswer>
<huntAlgorithmBusy>Try next member; then, try next group in Hunt List</huntAlgorithmBusy>
<huntAlgorithmNotAvailable>Stop hunting</huntAlgorithmNotAvailable>
</lineGroup>
</ns:addLineGroup>
</soapenv:Body>
</soapenv:Envelope>
01-16-2015 10:03 AM
Nicholas
Thanks for the quick response.
When I was posting I was thinking maybe it was time to use the more simplified syntax that is now being proposed in the developer guide (just like your example). In rewriting, I finally realized that my addLineGroup command lacked the <lineGroup> container for the xml representing the line group. Once I added that, things worked out just fine. I'd like to think though that there shouldn't be an undefined error returned, rather the axl error should be something along the lines "invalid xml" or "lineGroup element not found". I know I've seen such errors before with my cucm 10.5.
01-16-2015 10:19 AM
By the way, there's other ways to trigger this behavior.. here's a deleteLineGroup request that is incorrect (it should use the <name> tag, not <userId>.. <userId> is wrong, but that should return a warning about incorrect xml, not just crash and burn).
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://www.cisco.com/AXL/API/10.5">
<soapenv:Header/>
<soapenv:Body>
<ns:removeLineGroup sequence="10">
<userid>LG_test</userid>
</ns:removeLineGroup>
</soapenv:Body>
</soapenv:Envelope>
01-16-2015 11:51 AM
Yes, I'd love to see error handling improved in this and just about every Soap API.
I copied and reformatted your sample to look at it, and I didn't even notice your sample was missing the lineGroup tag. Whenever I'm doing any AXL work, I test everything in SoapUI first, which populates the tags from the WSDL, so it's unlikely I'll construct the call wrong (although it does happen). I find SoapUI to be an indispensable tool for debugging my AXL and developer's AXL problems.
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide