`

Two classes have the same XML type name 排错

阅读更多

         今天遇到一个问题,webservice发布的时候报下面的错误:

 

 

Caused by: com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationExceptions
Two classes have the same XML type name "{http://xxx.yyyy.com}createProcessResponse". Use @XmlType.name and @XmlType.namespace to assign different names to them.
	this problem is related to the following location:
		at xxx.yyy.gwfp.ws.dto.CreateProcessResponse
		at private xxx.yyy.gwfp.ws.dto.CreateProcessResponse xxx.yyy.gwfp.ws.jaxws_asm.CreateProcessResponse._return
		at xxx.yyy.gwfp.ws.jaxws_asm.CreateProcessResponse
	this problem is related to the following location:
		at xxx.yyy.gwfp.ws.jaxws_asm.CreateProcessResponse

	at com.sun.xml.bind.v2.runtime.IllegalAnnotationsException$Builder.check(IllegalAnnotationsException.java:102)
	at com.sun.xml.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(JAXBContextImpl.java:472)
	at com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:302)
	at com.sun.xml.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(JAXBContextImpl.java:1140)
	at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:154)
	at com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:121)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:202)
	at javax.xml.bind.ContextFinder.find(ContextFinder.java:363)
	at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:574)
	at org.apache.cxf.jaxb.JAXBDataBinding.createContext(JAXBDataBinding.java:562)
	at org.apache.cxf.jaxb.JAXBDataBinding.createJAXBContextAndSchemas(JAXBDataBinding.java:502)
	at org.apache.cxf.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:322)

 

           代码如下:

@Stateless
@WebService()
public class AccountWS {

@WebMethod()
public CreateProcessResponse createProcess(@WebParam(name = "request") CreateProcessRequest request) {
    return null;
}

 

 

      起初找不出来原因,后来才发现,由于JAX-WS对webservice里面得每个方法都生成一个类,生成的类名为: methodName + "Response",所以就回导致生成的类和原来的类有两个相同的xml type。

      知道原因后,除了我们修改方法名外,还有下面的3种解决方法: 

 

  •  更换返回值对象的name
@XMLType(name="CreateProcessResponseMsg", namespace="http://xxx.yyy.com")
  • 更换返回值对象的namespace
@XMLType(name="CreateProcessResponse", namespace="http://xxx.yyy.com/message")
  •  给方法上加上下面的注解

@WebMethod(operationName="differentFromMethodName")

      

        其实在最开始的时候说生成的class的名称是方法名+Response,是不准确的,operationName的默认值就是方法名,其实就是operationName+Response, 这个注解其实会改变生成的类的名称,对接口是没有影响的.

 

 

分享到:
评论

相关推荐

    易语言文本排错工具

    《易语言文本排错工具详解》 易语言,作为一款以“中国人自己的编程语言”为目标设计的编程工具,以其简洁的语法和贴近自然语言的特点,深受广大编程爱好者的喜爱。在编程过程中,文本处理是一项基础且重要的任务,...

    cisco packet tracer排错实验集合

    "cisco packet tracer排错实验集合"是一个针对网络初学者和专业人员的宝贵资源,包含了26个精心设计的实验,覆盖了各种网络排错场景。 实验一至二十五:这些实验可能分别涵盖了不同的网络问题,例如路由问题、...

    华为排错专家(内部培训教程)

    在IT行业中,排错是每个专业开发者和技术支持人员必须掌握的关键技能。华为作为全球领先的通信技术公司,其内部培训教程“华为排错专家”无疑是学习和提升这一技能的重要资源。本教程涵盖了多种技术栈,包括ASP.NET...

    Linux TS 排错经验

    在Linux系统中进行故障排查是一项重要且复杂的技能,它要求系统管理员对Linux系统有深入的理解,并掌握多种诊断和排错工具。以下是从给定文件中提取的Linux排错相关知识点。 首先,故障分类是排错的第一步,它有助...

    路由器故障排错入门

    路由器故障排错入门 路由器故障排错入门

    CCIE-LAB考试排错(上)

    CCIE-LAB考试排错(上) 很详细的考试说明与实例

    路由交换理论排错讲解

    路由交换理论排错讲解

    50种电脑排错

    50种电脑排错,很简单的,看看照着操作就能懂

    cacti的安装维护排错

    cacti的安装 cacti的维护 cacti的排错

    Windows编程高效排错

    【Windows编程高效排错】这篇文章主要探讨了在Windows环境下如何高效地进行用户态程序的调试与问题解决。作者熊力通过一系列的实际案例,分享了排错的方法、技巧和经验。 文章首先强调了排错的重要性,指出无论是...

    电脑常用排错命令

    在电脑使用过程中,遇到问题和故障是常有的事情,这时我们就需要借助一些排错命令来诊断和解决问题。本文将详细讲解几个常用的电脑排错命令及其应用,并简要介绍压缩包中包含的相关工具。 1. **命令提示符(CMD)与...

    Windows用户态程序排错

    ### Windows用户态程序排错——重要知识点解析 #### 一、引言 在软件开发、测试及技术支持领域,遇到程序行为不符合预期的情况是家常便饭。这些情况往往需要我们运用排错技巧来定位问题所在并加以解决。《Windows...

    活动目录排错必读文档

    活动目录排错必读文档,活动目录排错必读文档 关方的KB等等.

    Linux 防火墙 网卡排错

    Centos7网卡报错排错解决Word

    华为排错专家教程(两部分全)

    华为排错专家教程 华为排错专家教程 华为排错专家教程

    ospf故障排错流程

    ### OSPF故障排错流程详解 #### 一、引言 开放最短路径优先协议(Open Shortest Path First,简称OSPF)作为一种基于链路状态的动态路由协议,在现代网络中广泛应用于大型企业网络和互联网服务提供商(ISP)中。由于...

    Oracle排错流程图

    然而,任何复杂的系统都可能遇到问题,当Oracle数据库出现错误时,有效的排错和恢复策略至关重要。"Oracle排错流程图"提供了这样的指导,帮助DBA(数据库管理员)快速定位和解决可能出现的问题。 该流程图由资深的...

    oracle数据库备份恢复排错指南

    oracle数据库备份恢复排错指南

    ASP.NET 高级排错技巧

    在开发过程中,遇到错误是常态,而掌握高级排错技巧能显著提高开发效率和问题解决能力。本篇文章将深入探讨ASP.NET中的高级排错技巧。 一、调试工具的使用 1. Visual Studio IDE 内置调试器:Visual Studio 提供了...

    H3CTE排错报告-庄小波版

    很有参考价值一份排错报告,H3CTE考试满分1000分,其中排错报告300分,写好报告是关键的一部分。

Global site tag (gtag.js) - Google Analytics