So did my vCO 5.1.1 to 5.5.1 upgrade and we can't call workflows anymore.
We call the url https://vcoserver:8281/vmware-vmo-webcontrol/webservice
and it just doesn't work anymore
We're using the function to return the workflow name but it doesn't seem to do much good. If we go to that URL I get this:
Hi there, this is an AXIS service!
Perhaps there will be a form for invoking the service here...
After a bit more messing around I saw this error in the logs:
2014-04-28 16:47:06.301-0400 [http-bio-10.2.110.77-8281-exec-2] ERROR {} [EXCEPTIONS] Generating fault class
AxisFault
faultCode: {http://xml.apache.org/axis/}Client.NoSOAPAction
faultSubcode:
faultString: no SOAPAction header!
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:no SOAPAction header!
at org.apache.axis.transport.http.AxisServlet.getSoapAction(AxisServlet.java:1013)
at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:678)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
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 ch.dunes.vso.webservice.server.SoapActiveNodeFilter.doFilter(SoapActiveNodeFilter.java:38)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:581)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:680)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
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:1002)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
If anyone has ideas it would be appreciated
Thanks
Try to add /vco after the port number
i'm told we already tried that (new thing in 5.5 i guess) but it didn't help
You should test yourself since when getting to https://vcoserver:8281/vmware-vmo-webcontrol/webservice in a web server vCO redirects to https://vcoserver:8281/vco/vmware-vmo-webcontrol/webservice and display the webservice page.
that works but when we try to call the GetWorkflowsWithName it just fails with the following error:
The content type text/html;charset=utf-8 of the response message does not match the content type of the binding (text/xml; charset=utf-8). If using a custom encoder, be sure that the IsContentTypeSupported method is implemented properly. The first 134 bytes of the response were: '<h1>webservice</h1>
<p>Hi there, this is an AXIS service!</p>
<i>Perhaps there will be a form for invoking the service here...</i>
also we were getting a certificate error but since adding:
ServicePointManager.ServerCertificateValidationCallback = (s, certificate, chain, sslPolicyErrors) => true;
we don't get that error anymore.
Unfortunately I am not familiar enough with the SOAP web service to solve this error. It seems you get the web page instead of the web service itself.
The first one works around the self signed cert (but I don't know why we suddenly need it post upgrade since the cert was imported into the trusted root certificates store)
and this line defines the endpoint a 2nd time after creating the initial object. Our our app.config has the same url. Without the line below we get that html page, when we redefine the endpoint (to the same as the initial one), it seems to work.
service.Endpoint.Address = new EndpointAddress("https://vcoserver:8281/vco/vmware-vmo-webcontrol/webservice");