wcfjava调用
㈠ 如何调用带参数的WCF方法
[OperationContract(Name="sayHelloJson")]
[WebInvoke(Method = "GET", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, UriTemplate = "sayHello", BodyStyle = WebMessageBodyStyle.Wrapped)]
String sayHello();
[OperationContract(Name = "SendMessageJson")]
[WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json, UriTemplate = "SendMessage/{Message}", BodyStyle = WebMessageBodyStyle.Wrapped)]
String SendMessage(String Message);
比如说第一个不带参数的:http://localhost:8000/Service/Json/sayHello
那么第二个带参数的应该怎么调用?(比如说参数是"abc")
我指的是在浏览器中或java的httpclient中,因为我准备在android上实现客户端,所以.net的调用方式就不必讲了。
你URITemplate已经设置了。Get方式。
我猜测一下调用的URL应该是: 网站URL/SendMessage/你好
另外建议你使用REST WCF自带的一个帮助页面,里面会给出更精确的调用示例。
㈡ silverlight调用java webservice 错误,跨域文件clientaccesspolicy.xml已经放入到../webapps/ROOT下,如
这是跨域访问数据造成的,你肯定是让SL去访问别的服务端数据了。解决办法是必须在服务端放置跨域策略文件:
在WCF项目根目录下添加clientaccesspolicy.xml文件,内容如下:
<?xml version="1.0" encoding="utf-8" ?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="*">
<domain uri="*"/>
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
㈢ 怎么用cxf的wsdl2java解析wcf生成的wsdl
1、下载apache-cxf-2.6.2在环境变量中配置CXF_HOME ,在PATH中加入%CXF_HOME%\bin 2、输入cmd 进入控制窗口,输入wsdl2java看是否配置成功
3、参考它的文档看这个工具的具体参数的用法
wsdl2java用法:
wsdl2java -p com -d src -all aa.wsdl
-p 指定其wsdl的命名空间,也就是要生成代码的包名:
-d 指定要产生代码所在目录
-client 生成客户端测试web service的代码
-server 生成服务器启动web service的代码
-impl 生成web service的实现代码
-ant 生成build.xml文件
-all 生成所有开始端点代码:types,service proxy,,service interface, server mainline, client mainline, implementation object, and an Ant build.xml file.
详细用法见:http://cwiki.apache.org/CXF20DOC/wsdl-to-java.html