`
hellosoft
  • 浏览: 54807 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Java + PHP in wso2

阅读更多
Java + PHP in wso2


wso2提供了两个框架:WSFSpring, WSFPHP, 分别可以用于java和php.可以通过webservice,提供跨语言的交流。充分发挥各语言自己的优势。以下将描述,如何搭建这样的沟通渠道。

1. 服务端(Java)
需要安装JDK1.6+,  Tomcat 6.0+ , axis, 开发工具Eclipse



步骤:
1) 创建新项目:
File -> new -> Dynamic Web Project
项目名称 WSFSpringHelloWorld
2) 整理项目
a. Copy lib下载wsf spring 的 bin 包,解压缩后,
复制 wsf-spring-1.5-bin\wsf-spring-1.5-bin\samples\webapp\wsf-spring-sample-1.5\WEB-INF\lib 目录到 WSFSpringHelloWorld 项目中的 WebContent\WEB-INF 下(如上图)
这个lib下已经包含的spring和 wsfspring了
b. 复制 axis2Config.xml
复制 wsf-spring-1.5-bin\wsf-spring-1.5-bin\samples\webapp\wsf-spring-sample-1.5\WEB-INF\ axis2Config.xml 到目录到 WSFSpringHelloWorld 项目中的 WebContent\WEB-INF 下(如上图)

c. 创建HelloWorld 类
代码如下:
package com.hello;

public class HelloWorld {
	private String name;

	public String getName() {
	    return name;
	}

	public void setName(String name) {
	    this.name = name;
	}

	public String sayHello(String name) {
	    return name + " says Hello World!";
	}

}


d. 配置 applicationContext.xml
在 WSFSpringHelloWorld 项目中的 WebContent\WEB-INF 新建一个文件applicationContext.xml。内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
	
	<import resource="axis2Config.xml"/>
	
	<bean id="helloworld" class="com.hello.HelloWorld">
	     
		<property name="name" value="Tharindu Mathew"></property>
	
	</bean>
	
	<bean id="services" class="org.wso2.spring.ws.WebServices">
	    <property name="services">
	    <list>
	   	 <bean id="helloService" class="org.wso2.spring.ws.SpringWebService">       
	            <property name="serviceBean" ref="helloworld"></property>
	            <property name="serviceName" value="helloWorldService"></property>
	         </bean>
	    </list>
	    </property>
	</bean>

</beans>


e. 在WebContent\WEB-INF\web.xml中引用
主要是这两句
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/applicationContext.xml</param-value>
	</context-param>

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_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>WSFSpringHelloWorld</display-name>
	  
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>
	
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>/WEB-INF/applicationContext.xml</param-value>
	</context-param>
	
	<servlet>
		<servlet-name>axis2</servlet-name>
		<servlet-class>
			org.wso2.spring.ws.servlet.SpringAxis2Servlet
		</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>
	
	<servlet-mapping>
		<servlet-name>axis2</servlet-name>
		<url-pattern>/axis2/*</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>axis2</servlet-name>
		<url-pattern>/services/*</url-pattern>
	</servlet-mapping>
	
	<welcome-file-list>
		<!--
		<welcome-file>index.jsp</welcome-file>
		-->
		<welcome-file>/axis2-web/index.jsp</welcome-file>
	</welcome-file-list>
  
</web-app>

f.  以上步骤就可以发布标准的axis服务了,为了更加方面了解,可以考虑将目录axis2-1.5.1-bin\axis2-1.5.1\webapp\axis2-web(请先下载axis2的bin包),复制到WSFSpringHelloWorld 项目中的 WebContent目录下。

3) 发布 项目
可以在eclipse中发布war包(右键单击项目,选择export->war即可), 发布的war包,可以部署到tomcat服务器上。当然也可以直接在eclipse上运行(右键单击项目,选择run as -> run on server即可)
当发现可以访问 http://localhost:8080/WSFSpringHelloWorld/services/helloWorldService?wsdl
则表示成功
(这里假定Tomcat发布的端口是8080)

2. 客户端(PHP)
需要安装 PHP 5.2.6+ , WSF PHP

有关安装WSF PHP 的步骤,请google相关文档。下载的包里面就有一个说明(README.INSTALL)。安装完毕后, 就可以使用WSClient这个类了。

新建一个php文件,内容如下:
<?php
$wsdl = "http://192.168.5.158:8080/WSFSpringHelloWorld/services/helloWorldService?wsdl";
$client = new WSClient(array("wsdl"=>$wsdl));

$proxy = $client->getProxy();

$input = array("name" => "hello");
print_r($input);
$re = $proxy->sayHello($input);
echo $re["return"]; 


echo "\n";

?>


其中,假定发布服务的WSDL的路径是: http://192.168.5.158:8080/WSFSpringHelloWorld/services/helloWorldService?wsdl

由此,你就可以看到从远程的java端发送过来的信息了。

结束语,

这个只是一个引子。要想理解其中为什么这样,请google相关文档。当然 wso2上也有很多相关文档(例如:http://wso2.org/library/3208)。
如果您真的想用它到你的项目中,那么建议好好理解其中的代码和配置,这样才能更加变通的利用到你的项目中。
  • 大小: 168.4 KB
分享到:
评论

相关推荐

    WSO2-JAVA开发集成

    ### WSO2-JAVA开发集成知识点详解 #### 一、WSO2-ESB与JAVA集成概述 在现代企业环境中,不同系统之间的交互变得日益复杂。为了实现高效的数据交换和服务集成,WSO2 Enterprise Service Bus (ESB) 成为一个重要的...

    WSO2ESB的详细介绍指南

    WSO2 ESB是基于Java和OSGi框架构建的,它提供了灵活的服务代理、路由、转换和协议适配等功能。作为中间件,WSO2 ESB能够处理不同系统的API调用,确保数据在异构环境中的无缝传输。它支持多种标准如SOAP、REST、JMS、...

    WSO2 ESB 使用手册

    WSO2 ESB 使用手册,项目中使用到了WSO2的ESB功能作为ESB使用

    WSO2-ESB、WSO2 Enterprise Integrator 6.6.0 使用手册.doc

    【WSO2 Enterprise Integrator 6.6.0 使用手册】是关于WSO2公司提供的企业级集成解决方案的详细指南,特别关注了WSO2 ESB的升级版——WSO2 EI 6.6.0。WSO2是一家专注于开源SOA解决方案的提供商,其产品家族包括API ...

    WSO2ESB服务总线部署及使用说明.doc

    然而,由于WSO2 ESB产品已被整合进WSO2 Enterprise Integrator (WSO2 EI) 或者 Micro Integrator (WSO2 MI),因此在最新版本中,我们可能需要从WSO2官方网站下载WSO2 EI或MI来实现类似的功能。以下是对WSO2 ESB 5.0...

    Beginning WSO2 ESB(Apress,2016)

    From beginning to the end, Beginning WSO2 ESB effectively guides you in gradually building expertise in enterprise integration with WSO2 ESB for your SOA infrastructure. Nowadays successful ...

    wso2as-4.1.0.zip

    WSO2 Application Server 4.1.0 是一个开源的企业级Java EE服务器,它由WSO2公司开发,专门设计用于部署和管理基于Java的Web应用程序和服务。此版本的WSO2AS是针对J2EE(Java 2 Platform, Enterprise Edition)标准...

    WSO2 ESB消息路由示例

    **WSO2 ESB消息路由示例** WSO2企业服务总线(ESB)是一款强大的中间件,用于实现企业应用程序之间的集成和通信。在WSO2 ESB中,消息路由是其核心功能之一,它允许系统根据预定义的规则和策略对消息进行导向和处理...

    WSO2ESB 5.0.0 汉化包

    WSO2ESB 5.0.0 汉化后的jar.zip 评分: 内含 WSO2ESB 5.0.0 界面汉化的jar包 下载后将zip格式文件解压后 将jar copy 到 wso2esb-5.0.0/repository/components/plugins 中 将对应的jar替换便可完成汉化

    WSO2ESB汉化

    WSO2 ESB是基于Java平台的,它作为中间件,用于在不同系统间路由、转换和管理服务。它支持多种协议,如HTTP、JMS、FTP等,并提供了丰富的功能,如数据转换、错误处理、负载均衡等。ESB的主要目标是降低系统间的交互...

    wso2esb-tooling-composite-p2-5.0.0.zip

    官网下载,Eclipse插件:WSO2 ESB tooling,适配WSO2 ESB 5.0.0。 仅 Eclipse Mars.2 Release (4.5.2) 版本可使用(我用的是Eclipse JEE Mare.2)。 如果需要Eclipse汉化,必须先安装 WSO2 ESB tooling,再安装...

    wso2 esb installation part 5

    wso2 esb installation part 5

    一些关于wso2 esb的文档

    5. **JMS可靠性与确认模式**:《JMS Message Delivery Reliability and Acknowledgement Patterns》讨论了在WSO2 ESB中使用JMS(Java Message Service)时如何确保消息传递的可靠性和确认策略。这涉及到消息队列、...

    WSO2安装手册

    WSO2安装手册,项目中对于WSO2工具的使用,关于安装手册的。

    WSO2-Integration-Studio-7.0.0-win32-x86_64.zip

    6. **多语言支持**:由于基于Eclipse,WSO2 Integration Studio支持多种编程语言,如Java、XML、JavaScript等,为开发者提供了广泛的语言选择。 7. **版本控制集成**:与Git和其他版本控制系统集成,使得团队协作...

    wso2 esb 服务编排

    【WSO2 ESB服务编排】是企业级服务总线(Enterprise Service Bus)中的一种重要功能,它允许开发者通过组合、路由、转换和管理多个服务来创建复杂的业务流程。WSO2 ESB是开源软件供应商WSO2提供的中间件产品,它作为...

    wso2esb-5.0.0.zip

    1. **WSO2 ESB**: WSO2 ESB是一个基于Java的ESB,它实现了服务导向架构(Service-Oriented Architecture,SOA)的理念,通过提供消息传递、转换、路由等功能,使得不同系统的通信变得更加容易和灵活。 2. **版本...

    WSO2 ESB 企业服务总线总结文档

    WSO2 ESB(Enterprise Service Bus)是WSO2公司推出的一款开源的企业级服务总线,它基于Java语言开发,遵循ESB(企业服务总线)模式,旨在帮助企业实现服务的集成、管理和优化。作为一个中间件平台,WSO2 ESB的核心...

    wso2esb-4.0.0.zip

    WSO2 ESB 4.0.0是一个开源的企业服务总线(Enterprise Service Bus, ESB)版本,由WSO2公司开发。ESB在IT领域中扮演着至关重要的角色,它作为中间件,用于连接不同的系统、服务和应用程序,促进数据交换,实现企业级...

Global site tag (gtag.js) - Google Analytics