创建带WebService功能的Flex Web工程

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>


5、修改WebRoot/WEB-INF/web.xml文件,添加如下配置节:

<!-- 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服务的结果如下:






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值