发布Web服务时出现一些错误

问题描述

|
IWAB0398E Error in generating WSDL from Java:  java.lang.classCastException: org.apache.axis.encoding.ser.BeanSerializer cannot be cast to org.apache.axis.encoding.Serializer

IWAB0398E Error in generating WSDL from Java:  java.lang.classCastException: org.apache.axis.encoding.ser.BeanSerializer cannot be cast to org.apache.axis.encoding.Serializer
java.lang.classCastException: org.apache.axis.encoding.ser.BeanSerializer cannot be cast to org.apache.axis.encoding.Serializer
at org.apache.axis.encoding.ser.BaseSerializerFactory.getSpecialized(BaseSerializerFactory.java:165)
at org.apache.axis.encoding.ser.BaseSerializerFactory.getSerializerAsInternal(BaseSerializerFactory.java:91)
at org.apache.axis.encoding.ser.BaseSerializerFactory.getSerializerAs(BaseSerializerFactory.java:82)
at org.apache.axis.encoding.ser.BeanSerializerFactory.getSerializerAs(BeanSerializerFactory.java:64)
at org.apache.axis.wsdl.fromJava.Types.makeTypeElement(Types.java:1838)
at org.apache.axis.wsdl.fromJava.Types.writeTypeForPart(Types.java:421)
at org.apache.axis.wsdl.fromJava.Types.writeTypeAndSubTypeForPart(Types.java:442)
at org.apache.axis.wsdl.fromJava.Emitter.writePartToMessage(Emitter.java:1890)
at org.apache.axis.wsdl.fromJava.Emitter.writeRequestMessage(Emitter.java:1486)
at org.apache.axis.wsdl.fromJava.Emitter.writeMessages(Emitter.java:1106)
at org.apache.axis.wsdl.fromJava.Emitter.writePortType(Emitter.java:1075)
at org.apache.axis.wsdl.fromJava.Emitter.getWSDL(Emitter.java:484)
at org.apache.axis.wsdl.fromJava.Emitter.emit(Emitter.java:331)
at org.apache.axis.wsdl.fromJava.Emitter.emit(Emitter.java:430)
at org.apache.axis.tools.ant.wsdl.Java2WsdlAntTask.execute(Java2WsdlAntTask.java:243)
at org.eclipse.jst.ws.internal.axis.consumption.core.command.Java2WSDLCommand.executeAntTask(Java2WSDLCommand.java:180)
at org.eclipse.jst.ws.internal.axis.consumption.core.command.Java2WSDLCommand.execute(Java2WSDLCommand.java:95)
at org.eclipse.jst.ws.internal.axis.creation.ui.command.BUCodeGenoperation$BottomUpWSModifyOperation.execute(BUCodeGenoperation.java:122)
at org.eclipse.jst.ws.internal.axis.creation.ui.command.BUCodeGenoperation.execute(BUCodeGenoperation.java:86)
at org.eclipse.wst.command.internal.env.core.fragment.CommandFragmentEngine.runcommand
    

解决方法

        
BeanSerializer
实现
Serializer
,因此我们期望
BeanSerializer
实例可转换为
Serializer
。显然,在这种情况下不起作用。 一个常见的原因:轴的两个不同实现已由不同的类加载器加载。尝试从项目的类路径中删除尽可能多的轴库,某些库可能会干扰eclipse的内部版本。