zoukankan      html  css  js  c++  java
  • 普元EOS生成WebService时使用自定义实体映射属性

    概述

    最近使用普元EOS(下面简称EOS),制作Web Service接口供其他系统调用时发现, 使用EOS的DataObject作为入参报错, 按官方文档的示例也依然报错, 错误原因难以查找,便产生自己写一个JavaBean来实现自定义参数入参的问题, 但是JavaBean中由于按照驼峰式命名的规范, 在直接生成Web Service时xml的节点也同样会以驼峰的形式显示,而我的需求是节点显示成下划线分隔并且是大写英文。经过我搜集查询资料发现是有方法可以映射的。

    解决方法

    由于EOS中集成了XFire,因此我们需要在自定义的JavaBean同目录下新建一个与JavaBean同名称的.aegis.xml文件,例子如下,假设我们需要一个Product类作为JavaBean,目录结构及代码如下:

    package com.primeton.eos;
    
    public class Product {
    	private String productName;
    	private String producePlace;
    	private Integer price;
    
    	public String getProductName() {
    		return productName;
    	}
    
    	public void setProductName(String productName) {
    		this.productName = productName;
    	}
    
    	public String getProducePlace() {
    		return producePlace;
    	}
    
    	public void setProducePlace(String producePlace) {
    		this.producePlace = producePlace;
    	}
    
    	public Integer getPrice() {
    		return price;
    	}
    
    	public void setPrice(Integer price) {
    		this.price = price;
    	}
    }
    

    而在同目录里下生成Product.aegis.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <mappings>
    	<mapping name="PRODUCT">
    		<property name="price" mappedName="PRICE"/>
    		<property name="producePlace" mappedName="PRODUCE_PLACE"/>
    		<property name="productName" mappedName="PRODUCT_NAME"/>
    	</mapping>
    </mappings>

    右键逻辑构件(构件名称为CustomerManagement.componentType),生成Web Service,而生成的wsdl文件时,如果生成后的节点显示为in0,in1,可修改生成后的wsdl为指定名称,如下例子由in0修改为PRODUCTS,访问的节点也会随机改变

    入参映射到我们的JavaBean类的配置就完成了。

    参考链接

    普元EOS技术文档-Web Service开发
    在Java中使用XFire配置文件aegis开发Web服务

  • 相关阅读:
    18款在线代码片段测试工具
    毫秒必争,前端网页性能最佳实践
    如何判断Javascript对象是否存在
    推荐10款免费的在线UI测试工具
    揭开Socket编程的面纱
    使用 jQuery Ajax 在页面滚动时从服务器加载数据
    对Android开发者有益的40条优化建议
    web api+递归树型结构
    asp.net Lodop实现批量打印
    asp.net lodop单个打印
  • 原文地址:https://www.cnblogs.com/runningRookie/p/14348230.html
Copyright © 2011-2022 走看看