文档章节

Maximo中调用XFire客户端的实现—Weblogic中间件

drerk
 drerk
发布于 2012/05/19 15:26
字数 485
阅读 308
收藏 0

1.在Maximo工程中创建com.test.webservice包。

2.保存将http://test:8080/test/services/updateOrderItemImpl?wsdl文件保存到src根目录中。

3.将web service 接口类放入com.test.webservice包中。

package com.test.webservice;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;

@WebService(name = "UpdateOrderItem", targetNamespace = "http://webservice.test.com/")
@SOAPBinding(use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
public interface UpdateOrderItem {

	@WebMethod(operationName = "upOrderItem", action = "")
	@WebResult(name = "return", targetNamespace = "")
	public boolean upOrderItem(
			@WebParam(name = "id", targetNamespace = "http://webservice.test.com/") String id,
			@WebParam(name = "status", targetNamespace = "http://webservice.test.com/") String status,
			@WebParam(name = "owner", targetNamespace = "http://webservice.test.com/") String owner,
			@WebParam(name = "ownergroup", targetNamespace = "http://webservice.test.com/") String ownergroup);

}

4.编写客户端调用程序。

package com.test.webservice;

import java.io.IOException;

import org.codehaus.xfire.client.Client;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;

public class TestClient {

	/**
	 * @param args
	 * @throws Exception 
	 * @throws IOException 
	 */
	public static void main(String[] args){
		Object [] results = new TestClient().testClientMode("06ff91203759e0d4013759e98700001a", "status", "owner", "ownergroup");
        System.out.println( " result:  "   +  results[ 0 ]);
	}
	
	public Object[] testClientMode(String id ,String status,String owner,String ownerGroup){
		String wsdl = "updateOrderItemImpl.xml" ;  // 对应的WSDL文件 
        Resource resource  =   new  ClassPathResource(wsdl); 
        Client client = null;
		try {
			client = new  Client(resource.getInputStream(),  null );
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}  // 根据WSDL创建客户实例 
        Object[] objArray  =   new  Object[4];
        objArray[0]  = id;
        objArray[1]  = status;
        objArray[2]  = owner;
        objArray[3]  = ownerGroup;
         // 调用特定的Web Service方法 
        Object[] results = null;
		try {
			results = client.invoke( "upOrderItem" , objArray);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
        return results;
	}

}

5.在Maximo工程中添加XFire的支持。

6.在Maximo 需要调用接口的代码中加入调用方法。

/**
		 * 2012-5-18 jxd	保存服务请求时判断是否是Portal提交的请求,如果是再判断Owner,OwnerGroup,Status是否发生变化,
		 * 					如果发生变化调用Porta接口,同步更新数据。
		 */
		
		if (getBoolean("MEP_PORTAL_SUBMIT")){
			if (getBoolean("MEP_PORTAL_ISNEW")){
				setValue("MEP_PORTAL_ISNEW", false,NOACCESSCHECK | NOVALIDATION_AND_NOACTION);
			} else if (isModified("OWNER") || isModified("OWNERGROUP") || isModified("STATUS")) {
				Object [] object = new TestClient().testClientMode(getString("MEP_PORTAL_ORDERITEMID"), getString("STATUS"), getString("OWNER"), getString("OWNERGROUP"));
				System.out.println(object[0]+"------------------");
			}
		}

7.将XFire的支持jar文件加入Weblogic的启动目录中,D:\bea\user_projects\domains\base_domain\lib。放入Maximo lib目录中有问题,总是提示找不到XFire的相关jar文件。

XFire所需支持

8.启动Weblogic,测试通过。

以上为本人亲测,没有任何问题,如有其他好的方法,大家可以一起讨论交流。

© 著作权归作者所有

drerk

drerk

粉丝 5
博文 1
码字总数 485
作品 0
浦东
技术主管
私信 提问
在tomcat上发布webservice成功,为什么weblogic上报404

webservice在weblogic下无法访问404,在tomcat正常,而且也不报错,我用的是cxf和xfire框架都是这种情况,这是为什么,weblogic发布webservice有什么特殊的配置还是加入什么jar包吗?...

Z_dragon
2013/04/16
3.4K
1
使用MyEclipse构建Web Service(基于Xfire框架)

使用Xfire实现一个简单的“Hello, World”Web Services,作业应当包括相关的实现软件代码以及对应的WSDL。 MyEclipse 6.5,XFire 1.2.6,Tomcat 6.x XFire下载地址:http://xfire.codehaus...

郏高阳
2012/09/25
1K
0
XFire组件开发WebService实例

1.websevice简介 WebService又是一种高级应用,与之前学习的Struts、Spring、Hibernate等框架不同。WebService是面向服务的架构(SOA)。那么它到底是做什么用的?什么才是面向服务的架构?让...

小明子
2013/09/27
11.4K
0
求职!工作经验5年,求技术经理,架构师,高级工程师职位(地点:成都)

真心求职,非诚勿扰,谢谢! 薪资8.5K+++ 个 人 简 历 姓名 王XX 性别 男 年龄 28 籍贯 成都 民族 汉 婚姻状况 已婚 学历 本科 毕业院校 成都信息工程学院 专业 软件工程 工作经验 5年 身高 ...

我不是菜鸟
2010/07/07
1K
11
Spring整合CXf WebService总结

Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开...

afreon
2015/06/19
678
0

没有更多内容

加载失败,请刷新页面

加载更多

只需一步,在Spring Boot中统一Restful API返回值格式与统一处理异常

统一返回值 在前后端分离大行其道的今天,有一个统一的返回值格式不仅能使我们的接口看起来更漂亮,而且还可以使前端可以统一处理很多东西,避免很多问题的产生。 比较通用的返回值格式如下:...

晓月寒丶
昨天
59
0
区块链应用到供应链上的好处和实际案例

区块链可以解决供应链中的很多问题,例如记录以及追踪产品。那么使用区块链应用到各产品供应链上到底有什么好处?猎头悬赏平台解优人才网小编给大家做个简单的分享: 使用区块链的最突出的优...

猎头悬赏平台
昨天
28
0
全世界到底有多少软件开发人员?

埃文斯数据公司(Evans Data Corporation) 2019 最新的统计数据(原文)显示,2018 年全球共有 2300 万软件开发人员,预计到 2019 年底这个数字将达到 2640万,到 2023 年达到 2770万。 而来自...

红薯
昨天
65
0
Go 语言基础—— 通道(channel)

通过通信来共享内存(Java是通过共享内存来通信的) 定义 func service() string {time.Sleep(time.Millisecond * 50)return "Done"}func AsyncService() chan string {retCh := mak......

刘一草
昨天
58
0
Apache Flink 零基础入门(一):基础概念解析

Apache Flink 的定义、架构及原理 Apache Flink 是一个分布式大数据处理引擎,可对有限数据流和无限数据流进行有状态或无状态的计算,能够部署在各种集群环境,对各种规模大小的数据进行快速...

Vincent-Duan
昨天
60
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部