配置 CXF
将 CXF 与既有工程集成的时,经常会遇到 asm 包冲突的问题。 Hibernate 使用的版本和 CXF 中使用的版本不一致,解决的办法是: 去掉工程 lib 下的 asm.jar , asm-attrs.jar 和 cglib-2.1.3.jar ,使用 asm-2.2.3.jar 和 cglib-nodep-2.1_3.ja
sayHi to Flex & CXF
1 、server 代码
a. 创建 SEI
package packageName;
import javax.jws.WebService;
import javax.jws.WebParam;
@WebService
public interface HelloWorld {
String sayHi(@WebParam(name="text") String text);
}
b. 实现 SEI
package packageName;
import javax.jws.WebParam;
import javax.jws.WebService;
@WebService(endpointInterface = "packageName.HelloWorld",
serviceName = "HelloWorld")
public class HelloWorldImpl implements HelloWorld {
public String sayHi(@WebParam(name="text") String text) {
return "Hello " + text;
}
}
C. server
package packageName;
import javax.servlet.http.HttpServletRequest;
import javax.xml.ws.Endpoint;
public class Server {
public static String start() throws Exception{
HelloWorldImpl implementor = new HelloWorldImpl();
String address = "http://localhost:9000/helloWorld";
Endpoint.publish(address, implementor);
return "success";
}
2、client 代码
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
creationComplete="wsStock.sayHi.send();">
<mx:Script>
<![CDATA[
import mx.events.ResourceEvent;
import mx.controls.Alert;
import mx.rpc.events.ResultEvent;
private function wsHandle(e:ResultEvent):void
{
lb.text = e.result as String;
}
]]>
</mx:Script>
<mx:Panel x="106" y="120" width="398" height="200" layout="absolute" title="CXF sample" horizontalAlign="center" verticalAlign="middle">
<mx:Label id="lb" textAlign="center" width="378" height="24"/>
</mx:Panel>
<mx:WebService id="wsStock" showBusyCursor="true"
wsdl="http://localhost:9000/helloWorld?wsdl"
fault="Alert.show(event.fault.faultString,'Error')">
<mx:operation name="sayHi" result="wsHandle(event);">
<mx:request>
<text>CXF</text>
</mx:request>
</mx:operation>
</mx:WebService>
</mx:Application>