java xmladapte_java – Jaxb:全局绑定使用XMLAdapter进行双...
我有一个元素定义为xsd:double.如果我尝试将一个值285放入元素然后我编组它我得到285.0的输出……那很好.但是,如果我输入一个值285292746,我得到2.85292746E8的输出我是元帅.
我喜欢这样的东西,以便双输出不会转换为带小数的科学记数法?基本上我想要285292746或2852292746.0000000
java.lang.Double.toString()对某些为xml生成isues的值使用“computerized scientific notation”.
我知道给定值的双重表示很好.但是值是指数格式的事实,我正在处理的系统是接受我的XML但不知道如何处理指数值并导致我的程序无法正常工作.在WSDL或服务器中更改xsd:double类型对我来说是不可行的.我在客户端工作.
我遇到了Jaxb:绑定xsd:double类型.我仍然很难解决问题,以非扩展格式发送值double值.
package com.logger.client
import javax.xml.bind.annotation.adapters.XmlAdapter;
import javax.xml.bind.DatatypeConverter;
public class JaxbDoubleSerializer extends XmlAdapter
{
public Double unmarshal(String value) {
return ((double)javax.xml.bind.DatatypeConverter.parseDouble(value));
}
public String marshal(Double value) {
if (value == null) {
return null;
}
return (javax.xml.bind.DatatypeConverter.printDouble((double)(double)value));
}
}
我需要帮助如何使用DoubleSerializer,以便我可以传递没有指数的值.我尝试在我的类MyLogClient.java中使用xmlAdapter Annotation.我需要知道如何解决这种情况.
package com.logger.client
import javax.xml.ws.BindingProvider;
import javax.xml.bind.JAXBElement;import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.XmlValue;
public class MyLogClient
{
//Private member fields
/** Object factory used to create user-and-role specific objects. */
private static final ObjectFactory _of = new ObjectFactory();
@XmlJavaTypeAdapter(JaxbDoubleSerializer.class)
public JAXBElement msgFileId;
@XmlJavaTypeAdapter(JaxbDoubleSerializer.class)
public Double dNumber;
public final void createEntry;
(
final String userName,
final String time,
final String logMsgStringId,
final Params logMsgParamsVal,
final Integer logMessageFieldID
)
throws JAXBException
{
JAXBElement username = _of.createParamsParam(userName);
JAXBElement strTime = _of.createLogRequestTime(time);
// Build the LogRequest request.
final LogRequest _LogRequest = _of.createLogRequest();
_LogRequest.setUserName(userName);
_LogRequest.setTime(strTime);
//Following is the main problem
int nMsgArgs = 285292746;
dNumber = Double.parseDouble(Integer.toString(nMsgArgs));
//After parsing double Value I get dNumber is now 2.85292746E8
//MsgFile Id is of Type JAXBElement
//CreateLogMessageIdentifier takes Double param
//So the main problem is here..the value of double field in soap request
//is being sent in exponential format. I need to send as I explained above
//285292746.
msgFileId = _of.createLogMessageIdentifier(dNumber);
JAXBElement strIdVal = _of.createLogMessageFileId(logMsgStringId);
final LogMessage logMessage = _of.createLogMessage();
JAXBElement _logMsgParams =_of.createLogMessageParams(logMsgParamsVal);
//Following is where I am trying to use marshall for double type.
JAXBContext context = JAXBContext.newInstance("package com.logger.client ");
context.createMarshaller().marshal(msgFileId, System.out);
logMessage.setIdentifier(msgFileId); //Method takes JAXBElement
logMessage.setFileId(strIdVal );
logMessage.setParams(_logMsgParams);
JAXBElement logMsgValue = _of.createLogRequestLogMessage(logMessage);
_LogRequest.setLogMessage(logMsgValue);
// Set the log entry
port.log(_LogRequest); //Request is sent to server.
}
WSDL xsd:类型声明如下: –
标识符字段的输出是: –
2.85292746E8
Whereas I want to send as. Because system does accept/recognize following types.
285292746
or
285292746.00000000
java xmladapte_java – Jaxb:全局绑定使用XMLAdapter进行双...相关推荐
- JAXB自定义绑定– Java.util.Date / Spring 3序列化
JaxB可以处理Java.util.Date序列化,但是需要以下格式: " yyyy-MM-ddTHH:mm:ss ". 如果需要将日期对象格式化为另一种格式怎么办? 我有同样的问 ...
- JOGL - Java与OpenGl的绑定(转)
JOGL - Java与OpenGl的绑定 默认分类 2009-11-22 20:31:05 阅读4 评论0 字号:大中小 在这篇文章里,摘录了<学习Java对于OpenGl的绑定>.作者 ...
- cassandra 数据到Java对象的映射绑定
类似Hibernate和MyBatis的关系映射,自动帮你将查询数据或是修改的参数进行数据映射和绑定. 支持查询后返回数据ResultSet到Java对象的映射,支持修改.删除.查询之前参数的绑定. ...
- Java自定义异常、全局捕获异常、拦截器 实现动态控制登录超时
Java自定义异常.全局捕获异常.拦截器 实现动态控制登录超时 参考文章: (1)Java自定义异常.全局捕获异常.拦截器 实现动态控制登录超时 (2)https://www.cnblogs.com/ ...
- java对opengl绑定_你好,JOGL - Java与OpenGl的绑定-Java频道-中国IT实验室
然后出现了JOGL 也许是最流行的真正的面向对象的编程语言.有许多用去结合OpenGL的尝试,但是第一个被大家认可并注意的是Java对于OpenGl的绑定(Java Bindings for Open ...
- java实现app微信绑定功能
在 Java 中实现微信绑定功能,需要使用微信开放平台提供的相关接口和 SDK. 首先,你需要在微信开放平台上注册开发者帐号,并创建应用.然后,你需要在应用中获取 AppID 和 AppSecret, ...
- java 全局数组_如何在Java中声明全局数组?
我有一个程序在Java中乘以两个矩阵.我在全局错误声明中发现了一些错误. 这里是我的代码如何在Java中声明全局数组? import java.util.Scanner; /**WAP in Java ...
- java定焦点_测温型热成像双光谱球机
产品说明 双光球型云台热像仪(小)集高稳定性红外热像仪.高清可见光网络摄像机.智能云台于一体,可对有多个待测目标或多个待测区域的仓库.料坑.机房等规模性场所进行实时双光监控.先进的红外热像仪可在完全漆 ...
- JAXB: XML绑定的Java体系结构
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 用于XML绑定的Java体系结构(JAXB)是一种软件框架,它允许Java开发人员将Java 类映射 ...
最新文章
- 逗号分隔的字符串转换为Python中的列表 split
- boost::edmonds_karp_max_flow用法的测试程序
- es6 日期字符串转日期_【R语言新书】1.4 数据结构Ⅲ:字符串、日期时间
- python excel xlwings_python excel神器xlwings
- 红旗linux培训文档,Linux基本应用培训-红旗Linux.ppt
- kylin启动:Failed to create /kylin
- 动态规划法求最大字段和时间复杂度_面试必备——手撕代码(1)“最大子序列和”...
- BZOJ3420: Poi2013 Triumphal arch
- 荧光染料Alexa Fluor 647 carboxylic acid/COOH/羧基羧酸
- 微信h5缓存清理技巧
- 数据可视化 六种基本图标
- JAVA考试多选题判断得分
- springboot集成rabbitmq,根据查询的信息创建多个消息中心和消息队列,并实现不同的消息发送到不同的消息中心
- 计算机如何安装程序,怎么禁止电脑安装任何软件?禁止计算机安装程序的方法(图文)...
- P7560-[JOISC 2021 Day1]フードコート【吉司机线段树】
- 从毕业到2010的Java程序员生涯(一)
- 【ICCV2019 论文列表】出炉论文持续更新
- 图纸格式dwg批转pdf如何操作
- 2018网易游戏开发面试题(经验)锦集
- 《Advice on how to read papers》---吴恩达CS230随堂笔记
热门文章
- C#实现AES加密和解密
- CVS/SVN/GIT
- Android PdfViewer
- mengento 数据库模型
- MVC中用 BundleCollection 压缩CSS时图片路径问题
- Eclipse插件安装出现Duplicate location错误
- 软考信息系统项目管理师_历年真题_2020下半年错题集_上午综合知识题---软考高级之信息系统项目管理师036
- C++_逻辑运算符_非_与_或---C++语言工作笔记015
- JAVA高并发服务器工作笔记0001---Java中InetAddress与InetSocketAddress的基本用法
- Netty工作笔记0020---Selectionkey在NIO体系