You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cxf.apache.org by "andre.scheepers" <an...@live.com> on 2013/08/26 11:10:20 UTC

New web method added gives the following issue

Hi there:
Can you please assist me with the following error? 

//When client calls the Webservice on that web method
javax.xml.ws.WebServiceException: Could not find wsdl:binding operation info
for web method populateAuditPublishing.
      at
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:123)
      at com.sun.proxy.$Proxy36.populateAuditPublishing(Unknown Source)
      at
com.pilog.dt.server.DictionaryTransferServer.impactAnalysis(DictionaryTransferServer.java:74)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
      at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:601)
      at
com.startech.transport.TransportServlet.doPost(TransportServlet.java:117)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
      at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)
      at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
      at
com.pilog.web.filter.TimeoutFilter.completeFilterChain(TimeoutFilter.java:120)
      at com.pilog.web.filter.TimeoutFilter.doFilter(TimeoutFilter.java:108)
      at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)
      at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
      at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
      at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
      at
org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153)
      at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)
      at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
      at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
      at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368)
      at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
      at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671)
      at
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930)
      at java.lang.Thread.run(Thread.java:722)
WSDL Link:
http://123.176.36.245/DictionaryTransferServiceDEV/DictionaryTransferService?wsdl
The one thread on stack overflow it could be the wsdl thats out dated so I
have updated it all the correct places.
Client jar and App server.
Do you know maybe if a SOAP service has a limit on the ammount of
operations?
Thanks in advance.
Regards



--
View this message in context: http://cxf.547215.n5.nabble.com/New-web-method-added-gives-the-following-issue-tp5733004.html
Sent from the cxf-dev mailing list archive at Nabble.com.

Re: New web method added gives the following issue

Posted by Freeman Fang <fr...@gmail.com>.
Hi,

My comment inline
-------------
Freeman(Yue) Fang

Red Hat, Inc. 
FuseSource is now part of Red Hat
Web: http://fusesource.com | http://www.redhat.com/
Twitter: freemanfang
Blog: http://freemanfang.blogspot.com
http://blog.sina.com.cn/u/1473905042
weibo: @Freeman小屋



On 2013-8-27, at 下午3:30, andre.scheepers wrote:

> Hi,
> 
> Thanks for the reply.
> 
> I did use the wsdl URL at the client stub.
No, you didn't
> 
> This piece if code does the same as you mentioned.
> 
>                System.out.println("DictionaryTransferServer: Invoke
> DictionaryTransferService for Analysing Templates..."); 
>                DictionaryTransferService service = new
> DictionaryTransferService(); 
You should change
DictionaryTransferService service = new DictionaryTransferService(); 
to 
DictionaryTransferService service = new DictionaryTransferService(endpointURL); 
>                DictionaryTransfer port =
> service.getDictionaryTransferPort(); 
above line code will use wsdl you passed to build the service module, so any change you put in the wsdl could be picked up
>                //Set Service end point URL. 
>                ((BindingProvider)
> port).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
> endpointURL.toString()); 
put url here can't change the service module as it already get initialized.
> 
> 
> How ever I have discovered that my project has added another META-INF for my
> local WSDL URL.
> Do you think by removing that resolve the issue?
> 
> Thanks in advance
> 
> 
> 
> --
> View this message in context: http://cxf.547215.n5.nabble.com/New-web-method-added-gives-the-following-issue-tp5733004p5733121.html
> Sent from the cxf-dev mailing list archive at Nabble.com.


Re: New web method added gives the following issue

Posted by "andre.scheepers" <an...@live.com>.
Hi,

Thanks for the reply.

I did use the wsdl URL at the client stub.

This piece if code does the same as you mentioned.

                System.out.println("DictionaryTransferServer: Invoke
DictionaryTransferService for Analysing Templates..."); 
                DictionaryTransferService service = new
DictionaryTransferService(); 
                DictionaryTransfer port =
service.getDictionaryTransferPort(); 
                //Set Service end point URL. 
                ((BindingProvider)
port).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
endpointURL.toString()); 


How ever I have discovered that my project has added another META-INF for my
local WSDL URL.
Do you think by removing that resolve the issue?

Thanks in advance



--
View this message in context: http://cxf.547215.n5.nabble.com/New-web-method-added-gives-the-following-issue-tp5733004p5733121.html
Sent from the cxf-dev mailing list archive at Nabble.com.

Re: New web method added gives the following issue

Posted by Freeman Fang <fr...@gmail.com>.
Hi,

You should create DictionaryTransferService with the wsdlUrl, so that the client stub would know you have new method added

so change
DictionaryTransferService service = new DictionaryTransferService();
to 
DictionaryTransferService service = new DictionaryTransferService(endpointURL);
-------------
Freeman(Yue) Fang

Red Hat, Inc. 
FuseSource is now part of Red Hat
Web: http://fusesource.com | http://www.redhat.com/
Twitter: freemanfang
Blog: http://freemanfang.blogspot.com
http://blog.sina.com.cn/u/1473905042
weibo: @Freeman小屋



On 2013-8-27, at 下午1:44, andre.scheepers wrote:

> Hi,
> 
> 1) Im using netbeans. I added the webmethod in the code of the main service
> as follows:
>    /**
>     * Web service populateAuditPublishing
>     *
>     * Starting the process for the populate Audit Publishing
>     *
>     * WS will return a String process ID.
>     */
>    @WebMethod(operationName = "populateAuditPublishing")
>    public String populateAuditPublishing(
>            @WebParam(name = "sourceCode") String sourceCode, @WebParam(
>            name = "dataSourceName") String dataSourceName, @WebParam(
>            name = "orgID") String orgID,
>            @WebParam(name = "ssUsername") String ssUsername)
>    {
>        System.out.println("######################################");
>        System.out.println("DictionaryTransferService:
> populateAuditPublishing Web method executing...");
>        UUID processID = UUID.randomUUID();
>        SessionMapBuilder sessionHashMap = new SessionMapBuilder(ssUsername,
> dataSourceName);
>        sessionHashMap.addKV("orgID", orgID);
> 
>        RunPopulateAuditPublishing populateAuditPublishingThread = new
> RunPopulateAuditPublishing(sessionHashMap.getSessionHashMap());
>        audits.put(processID.toString(), populateAuditPublishingThread);
>        Thread processThread = new Thread(populateAuditPublishingThread);
>        processThread.start();
>        return processID.toString();
>    }
> 
> 2) Used my local runnning URL to refresh my client also via Netbeans and
> added the call in the client as follows:
> endpointURL = new URL(metaProperties.getServiceURL());
> 
>                System.out.println("DictionaryTransferServer: Invoke
> DictionaryTransferService for Analysing Templates...");
>                DictionaryTransferService service = new
> DictionaryTransferService();
>                DictionaryTransfer port =
> service.getDictionaryTransferPort();
>                //Set Service end point URL.
>                ((BindingProvider)
> port).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
> endpointURL.toString());
> 
>                System.out.println("DictionaryTransferServer: Call
> populateAuditPublishing Web method...");
>                processID =
> port.populateAuditPublishing(metaProperties.getSourceCode() + "#" +
> metaProperties.getDictionaryLocales(),
>                        metaProperties.getDataSourceName(),
> metaProperties.getOrgID(), (String) sessionMap.get("ssUsername"));
> 
> 3) The client was added to the WAR file (web-inf\lib) server side classes
> and redeploy on my JBoss 7.1.1
> 
> 
> 
> --
> View this message in context: http://cxf.547215.n5.nabble.com/New-web-method-added-gives-the-following-issue-tp5733004p5733119.html
> Sent from the cxf-dev mailing list archive at Nabble.com.


Re: New web method added gives the following issue

Posted by "andre.scheepers" <an...@live.com>.
Hi,

1) Im using netbeans. I added the webmethod in the code of the main service
as follows:
    /**
     * Web service populateAuditPublishing
     *
     * Starting the process for the populate Audit Publishing
     *
     * WS will return a String process ID.
     */
    @WebMethod(operationName = "populateAuditPublishing")
    public String populateAuditPublishing(
            @WebParam(name = "sourceCode") String sourceCode, @WebParam(
            name = "dataSourceName") String dataSourceName, @WebParam(
            name = "orgID") String orgID,
            @WebParam(name = "ssUsername") String ssUsername)
    {
        System.out.println("######################################");
        System.out.println("DictionaryTransferService:
populateAuditPublishing Web method executing...");
        UUID processID = UUID.randomUUID();
        SessionMapBuilder sessionHashMap = new SessionMapBuilder(ssUsername,
dataSourceName);
        sessionHashMap.addKV("orgID", orgID);

        RunPopulateAuditPublishing populateAuditPublishingThread = new
RunPopulateAuditPublishing(sessionHashMap.getSessionHashMap());
        audits.put(processID.toString(), populateAuditPublishingThread);
        Thread processThread = new Thread(populateAuditPublishingThread);
        processThread.start();
        return processID.toString();
    }

2) Used my local runnning URL to refresh my client also via Netbeans and
added the call in the client as follows:
endpointURL = new URL(metaProperties.getServiceURL());

                System.out.println("DictionaryTransferServer: Invoke
DictionaryTransferService for Analysing Templates...");
                DictionaryTransferService service = new
DictionaryTransferService();
                DictionaryTransfer port =
service.getDictionaryTransferPort();
                //Set Service end point URL.
                ((BindingProvider)
port).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
endpointURL.toString());

                System.out.println("DictionaryTransferServer: Call
populateAuditPublishing Web method...");
                processID =
port.populateAuditPublishing(metaProperties.getSourceCode() + "#" +
metaProperties.getDictionaryLocales(),
                        metaProperties.getDataSourceName(),
metaProperties.getOrgID(), (String) sessionMap.get("ssUsername"));

3) The client was added to the WAR file (web-inf\lib) server side classes
and redeploy on my JBoss 7.1.1



--
View this message in context: http://cxf.547215.n5.nabble.com/New-web-method-added-gives-the-following-issue-tp5733004p5733119.html
Sent from the cxf-dev mailing list archive at Nabble.com.

Re: New web method added gives the following issue

Posted by Freeman Fang <fr...@gmail.com>.
Hi,

Could you elaborate how you add the new method?
e.g. 
1.how you update the wsdl?
2.did you use wsdl2java re-generate the client stub?
3.how you redeploy the client?

Seems the old wsdl without populateAuditPublishing method is still used somehow.
FYI, the cxf WSDLManager will cache the wsdl so you may need a restart to see if it helps.
-------------
Freeman(Yue) Fang

Red Hat, Inc. 
FuseSource is now part of Red Hat
Web: http://fusesource.com | http://www.redhat.com/
Twitter: freemanfang
Blog: http://freemanfang.blogspot.com
http://blog.sina.com.cn/u/1473905042
weibo: @Freeman小屋



On 2013-8-26, at 下午5:10, andre.scheepers wrote:

> Hi there:
> Can you please assist me with the following error? 
> 
> //When client calls the Webservice on that web method
> javax.xml.ws.WebServiceException: Could not find wsdl:binding operation info
> for web method populateAuditPublishing.
>      at
> org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:123)
>      at com.sun.proxy.$Proxy36.populateAuditPublishing(Unknown Source)
>      at
> com.pilog.dt.server.DictionaryTransferServer.impactAnalysis(DictionaryTransferServer.java:74)
>      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>      at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>      at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>      at java.lang.reflect.Method.invoke(Method.java:601)
>      at
> com.startech.transport.TransportServlet.doPost(TransportServlet.java:117)
>      at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
>      at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
>      at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329)
>      at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
>      at
> com.pilog.web.filter.TimeoutFilter.completeFilterChain(TimeoutFilter.java:120)
>      at com.pilog.web.filter.TimeoutFilter.doFilter(TimeoutFilter.java:108)
>      at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280)
>      at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248)
>      at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275)
>      at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
>      at
> org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153)
>      at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155)
>      at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>      at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>      at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368)
>      at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
>      at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671)
>      at
> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930)
>      at java.lang.Thread.run(Thread.java:722)
> WSDL Link:
> http://123.176.36.245/DictionaryTransferServiceDEV/DictionaryTransferService?wsdl
> The one thread on stack overflow it could be the wsdl thats out dated so I
> have updated it all the correct places.
> Client jar and App server.
> Do you know maybe if a SOAP service has a limit on the ammount of
> operations?
> Thanks in advance.
> Regards
> 
> 
> 
> --
> View this message in context: http://cxf.547215.n5.nabble.com/New-web-method-added-gives-the-following-issue-tp5733004.html
> Sent from the cxf-dev mailing list archive at Nabble.com.