CXF有什么好的方法获得wsdl的方法列表和参数类型列表呢?

View: New views
2 Messages — Rating Filter:   Alert me  

CXF有什么好的方法获得wsdl的方法列表和参数类型列表呢?

by 娟 王 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

1,现在很多工具,比如Netbeans,可以通过wsdl url,获得web服务方法的方法列表,方法参数类型列表,CXF如何才可以实现呢?

通过DynamicClientFactory方式,虽然容易获得方法列表,MessagePartInfo.getTypeClass()却怎是返回
null?

注,WS服务端通过如下方式发布:

                 HelloWorldImpl helloworldImpl = new HelloWorldImpl();
                ServerFactoryBean svrFactory = new ServerFactoryBean();
                svrFactory.setServiceClass(HelloWorld.class);
                svrFactory.setAddress("http://localhost:9000/Hello");
                svrFactory.setServiceBean(helloworldImpl);
                org.apache.cxf.endpoint.Server server = svrFactory.create();

2,cxf的例子wsdl_first_dynamic_client,ComplexImpl中使用的类在什么地方呢,是使用wsdl2java生成
的吗?
import
com.company.application.CompanyESBApplicationBiztalkAgentDetails4405AgentDetailsPrtSoap;
import com.company.application.GetAgentDetails;
import com.company.application.GetAgentDetailsResponse;

import
agentwsresponse.agent.legacysystemservices.schemas.hitum.esb.company.AgentWSResponse;
--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛“cxf-zh”论坛。
 要在此论坛发帖,请发电子邮件到 cxf-zh@...
 要退订此论坛,请发邮件至 cxf-zh-unsubscribe@...
 更多选项,请通过 http://groups.google.com/group/cxf-zh?hl=zh-CN 访问该论坛
----
Apache CXF 首页 http://cwiki.apache.org/confluence/display/CXF/Index
-~----------~----~----~----~------~----~------~--~---


Re: CXF有什么好的方法获得wsdl的方法列表和参数类型列表呢?

by willem.jiang :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message



On 9月18日, 下午10时24分, 娟 王 <wjuan.2...@...> wrote:

> 1,现在很多工具,比如Netbeans,可以通过wsdl url,获得web服务方法的方法列表,方法参数类型列表,CXF如何才可以实现呢?
>
> 通过DynamicClientFactory方式,虽然容易获得方法列表,MessagePartInfo.getTypeClass()却怎是返回
> null?
>
> 注,WS服务端通过如下方式发布:
>
>                  HelloWorldImpl helloworldImpl = new HelloWorldImpl();
>                 ServerFactoryBean svrFactory = new ServerFactoryBean();
>                 svrFactory.setServiceClass(HelloWorld.class);
>                 svrFactory.setAddress("http://localhost:9000/Hello");
>                 svrFactory.setServiceBean(helloworldImpl);
>                 org.apache.cxf.endpoint.Server server = svrFactory.create();
>
你用的是Code First 的方式发布服务,由于CXF是使用Reflection 来获取参数名的, 但是由于JDK缺省生成.class
是不包含方法参数名字的, 这样生成出的wsdl 在 方法参数那一块就用 arg0, arg1来替代。
我怀疑这和你遇到的问题有一定关系, 建议你使用WSDL First方式来进行测试。

> 2,cxf的例子wsdl_first_dynamic_client,ComplexImpl中使用的类在什么地方呢,是使用wsdl2java生成
> 的吗?
是的, 在DynamicClient中调用了和wsdl2java 一样的代码来生产那些type class的。

> import
> com.company.application.CompanyESBApplicationBiztalkAgentDetails4405AgentDe tailsPrtSoap;
> import com.company.application.GetAgentDetails;
> import com.company.application.GetAgentDetailsResponse;
>
> import
> agentwsresponse.agent.legacysystemservices.schemas.hitum.esb.company.AgentW SResponse;


姜宁 (Willem)
------------------
Apache CXF, Apache Camel committer
Open SOA http://www.fusesource.com
Blog http://willemjiang.blogspot.com
Tiwtter http://twitter.com/willemjiang

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛“cxf-zh”论坛。
 要在此论坛发帖,请发电子邮件到 cxf-zh@...
 要退订此论坛,请发邮件至 cxf-zh-unsubscribe@...
 更多选项,请通过 http://groups.google.com/group/cxf-zh?hl=zh-CN 访问该论坛
----
Apache CXF 首页 http://cwiki.apache.org/confluence/display/CXF/Index
-~----------~----~----~----~------~----~------~--~---