wsdl2java 限制登录_用CXF中的wsdl2java工具时抛出SAXParseException,提示accessExternalSchema属性设置的限制而不允许file访问...

用CXF中的wsdl2java工具时抛出SAXParseException,提示accessExternalSchema属性设置的限制而不允许file访问

具体的信息如下, 求教web-service大神, 我改如何解决, 百度了一圈都没能找到答案

G:\myeclipseworkspace\WS-client\src>wsdl2java http://192.168.1.4/server?wsdl

Exception in thread "main" java.lang.AssertionError: org.xml.sax.SAXParseExcepti

on; systemId: jar:file:/F:/apache-cxf-3.0.0/lib/jaxb-xjc-2.2.7.jar!/com/sun/tool

s/xjc/reader/xmlschema/bindinfo/binding.xsd; lineNumber: 52; columnNumber: 88; s

chema_reference: 由于 accessExternalSchema 属性设置的限制而不允许 ""file"" 访问,

因此无法读取方案文档 ""xjc.xsd""。

at com.sun.tools.xjc.SchemaCache.newValidator(SchemaCache.java:80)

at com.sun.tools.xjc.reader.internalizer.SCDBasedBindingSet.apply(SCDBas

edBindingSet.java:237)

at com.sun.tools.xjc.ModelLoader.createXSOM(ModelLoader.java:541)

at com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompiler

Impl.java:269)

at com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompiler

Impl.java:95)

at org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding.initiali

ze(JAXBDataBinding.java:460)

at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.generateTypes(WSDLToJ

avaContainer.java:714)

at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.processWsdl(WSDLToJav

aContainer.java:270)

at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaCon

tainer.java:164)

at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaCon

tainer.java:412)

at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.ja

va:103)

at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:113)

at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:86)

at org.apache.cxf.tools.wsdlto.WSDLToJava.main(WSDLToJava.java:184)

Caused by: org.xml.sax.SAXParseException; systemId: jar:file:/F:/apache-cxf-3.0.

0/lib/jaxb-xjc-2.2.7.jar!/com/sun/tools/xjc/reader/xmlschema/bindinfo/binding.xs

d; lineNumber: 52; columnNumber: 88; schema_reference: 由于 accessExternalSchema

属性设置的限制而不允许 ""file"" 访问, 因此无法读取方案文档 ""xjc.xsd""。

at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAX

ParseException(ErrorHandlerWrapper.java:203)

at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalErro

r(ErrorHandlerWrapper.java:177)

at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(

XMLErrorReporter.java:441)

at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.repo

rtSchemaErr(XSDHandler.java:4162)

at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.repo

rtSchemaFatalError(XSDHandler.java:4141)

at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.getS

chemaDocument(XSDHandler.java:2168)

at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reso

lveSchema(XSDHandler.java:2078)

at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.cons

tructTrees(XSDHandler.java:1008)

at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.pars

eSchema(XSDHandler.java:620)

at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadSchema

(XMLSchemaLoader.java:616)

at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGramma

r(XMLSchemaLoader.java:574)

at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGramma

r(XMLSchemaLoader.java:540)

at com.sun.org.apache.xerces.internal.jaxp.validation.XMLSchemaFactory.n

ewSchema(XMLSchemaFactory.java:255)

at javax.xml.validation.SchemaFactory.newSchema(SchemaFactory.java:638)

at javax.xml.validation.SchemaFactory.newSchema(SchemaFactory.java:670)

at com.sun.tools.xjc.SchemaCache.newValidator(SchemaCache.java:77)

... 13 more

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以通过以下步骤向SOAP头添加用户名和密码: 1. 创建一个包含用户名和密码的SOAPHeader对象。 2. 将SOAPHeader对象添加到SOAPEnvelope。 3. 将SOAPEnvelope对象设置为SOAPMessage对象的内容。 4. 使用SOAPConnection发送SOAPMessage对象。 以下代码片段演示了如何向SOAP头添加用户名和密码: ```java // 创建SOAP消息 SOAPMessage soapMessage = MessageFactory.newInstance().createMessage(); // 创建SOAP头 SOAPHeader soapHeader = soapMessage.getSOAPHeader(); // 创建身份验证信息 String username = "username"; String password = "password"; String authString = username + ":" + password; String authStringEnc = new String(Base64.encodeBase64(authString.getBytes())); // 添加身份验证信息到SOAP头 SOAPHeaderElement authHeader = soapHeader.addHeaderElement(new QName("http://example.com", "Authentication", "auth")); authHeader.addChildElement("Username").setValue(username); authHeader.addChildElement("Password").setValue(password); authHeader.addChildElement("AuthType").setValue("Basic"); authHeader.addChildElement("AuthData").setValue(authStringEnc); // 将SOAPEnvelope对象设置为SOAPMessage对象的内容 soapMessage.saveChanges(); // 发送SOAP消息 SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory.newInstance(); SOAPConnection soapConnection = soapConnectionFactory.createConnection(); SOAPMessage soapResponse = soapConnection.call(soapMessage, "http://example.com/soap"); ``` 请注意,上面的代码片段使用了Apache Commons Codec库的Base64类来编码用户名和密码。您需要将此库添加到您的项目,或者使用其他编码库。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值