1、新建一个基于java后台的flex web项目,配置各参数,使之成为一个可用tomcat发布,浏览器查看的web项目。
2、编写一个java类文件,内容如下:HelloWorld.java
package com.neil; public class HelloWorld { public String sayHello(){ return "Hello!"; } public String sayHelloToPerson(String name){ if(name==null || name.equals("")){ name="nobody"; } return "Hello "+name; } }
3、在WebServicePro/Webroot/WEB-INF/lib目录下添加axis等包,共6个包如下:
4、在WebServicePro/Webroot/WEB-INF下添加server-config.wsdd文件,注意配置需要暴露的方法名称,内容如下:
<?xml version="1.0" encoding="UTF-8"?> <deployment name="defaultClientConfig" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java" xmlns:handler="http://xml.apache.org/axis/wsdd/providers/handler" xmlns="http://xml.apache.org/axis/wsdd/"> <globalConfiguration name="GlobalConfiguration1" type="" regenerateElement="false"> <requestFlow name="RequestFlow1" type="" regenerateElement="false"> <handler name="Handler1" type="java:org.apache.axis.handlers.JWSHandler" regenerateElement="false"> <parameter name="scope" value="session" regenerateElement="false"/> </handler> <handler name="Handler2" type="java:org.apache.axis.handlers.JWSHandler" regenerateElement="false"> <parameter name="scope" value="request" regenerateElement="false"/> <parameter name="extension" value=".jwr" regenerateElement="false"/> </handler> </requestFlow> </globalConfiguration> <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper" regenerateElement="false"/> <handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder" regenerateElement="false"/> <handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler" regenerateElement="false"/> <transport name="http" type="" regenerateElement="false"> <requestFlow name="RequestFlow1" type="" regenerateElement="false"> <handler name="Handler1" type="URLMapper" regenerateElement="false"/> <handler name="Handler2" type="java:org.apache.axis.handlers.http.HTTPAuthHandler" regenerateElement="false"/> </requestFlow> </transport> <transport name="local" type="" regenerateElement="false"> <responseFlow name="ResponseFlow1" type="" regenerateElement="false"> <handler name="Handler1" type="LocalResponder" regenerateElement="false"/> </responseFlow> </transport> <service name="neilService" provider="java:RPC"> <parameter name="className" value="com.neil.HelloWorld"/> </service> </deployment>
<!-- SOAPMonitorService Servlet --> <servlet> <servlet-name>SOAPMonitorService</servlet-name> <servlet-class>org.apache.axis.monitor.soAPMonitorService</servlet-class> <init-param> <param-name>SOAPMonitorPort</param-name> <param-value>5001</param-value> </init-param> <load-on-startup>100</load-on-startup> </servlet> <servlet> <servlet-name>AxisServlet</servlet-name> <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/servlet/AxisServlet/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>*.jws</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping>
修改后完整的web.xml文件如下:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>WebServicePro</display-name> <context-param> <param-name>flex.class.path</param-name> <param-value>/WEB-INF/flex/hotfixes,/WEB-INF/flex/jars</param-value> </context-param> <!-- Http Flex Session attribute and binding listener support --> <listener> <listener-class>flex.messaging.HttpFlexSession</listener-class> </listener> <!-- Messagebroker Servlet --> <servlet> <servlet-name>MessagebrokerServlet</servlet-name> <servlet-class>flex.messaging.MessagebrokerServlet</servlet-class> <init-param> <param-name>services.configuration.file</param-name> <param-value>/WEB-INF/flex/services-config.xml</param-value> </init-param> <init-param> <param-name>flex.write.path</param-name> <param-value>/WEB-INF/flex</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>MessagebrokerServlet</servlet-name> <url-pattern>/messagebroker/*</url-pattern> </servlet-mapping> <!-- SOAPMonitorService Servlet --> <servlet> <servlet-name>SOAPMonitorService</servlet-name> <servlet-class>org.apache.axis.monitor.soAPMonitorService</servlet-class> <init-param> <param-name>SOAPMonitorPort</param-name> <param-value>5001</param-value> </init-param> <load-on-startup>100</load-on-startup> </servlet> <servlet> <servlet-name>AxisServlet</servlet-name> <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/servlet/AxisServlet/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>*.jws</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <!-- for WebSphere deployment,please uncomment --> <!-- <resource-ref> <description>Flex Messaging WorkManager</description> <res-ref-name>wm/MessagingWorkManager</res-ref-name> <res-type>com.ibm.websphere.asynchbeans.WorkManager</res-type> <res-auth>Container</res-auth> <res-sharing-scope>Shareable</res-sharing-scope> </resource-ref> --> </web-app>
6、新建一个应用程序测试页面,代码如下:
<?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"> <fx:Declarations> <!-- 将非可视元素(例如服务、值对象)放在此处 --> </fx:Declarations> <fx:Script> <![CDATA[ import mx.controls.Alert; import mx.rpc.events.ResultEvent; import mx.rpc.soap.WebService; private var ws:WebService=new WebService(); private function send():void{ ws.wsdl="http://localhost:8080/WebServicePro/services/neilService?wsdl"; ws.loadWSDL(); ws.sayHelloToPerson.addEventListener(ResultEvent.RESULT,operateHandler); ws.sayHelloToPerson(input.text); } private function operateHandler(event:ResultEvent):void{ Alert.show(event.result as String); } ]]> </fx:Script> <s:HGroup width="100%"> <s:TextInput id="input"/> <s:Button label="发送" click="send()"/> </s:HGroup> </s:Application>
最后,将工程添加到tomcat里进行发布,运行页面,得到如下结果:
直接访问webservice服务的结果如下:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。