weblogic部署axis2开发的客户端报错:Error reading XMLStreamReader: Undeclared namespace prefix "soapenv"

最新推荐文章于 2022-09-12 12:44:45 发布
最新推荐文章于 2022-09-12 12:44:45 发布 13396
Caused by: org.apache.axis2.AxisFault: Error reading XMLStreamReader: Undeclared namespace prefix "soapenv"
 at [row,col {unknown-source}]: [1,56]
	at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:508)
	at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:368)
	at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:414)
	at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:225)
	at org.apache.axis2.client.OperationClient.execute(OperationClient.java:150)
	at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:533)
	at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:509)
	at com.pansoft.bi.util.TWSUtil.sendSoapRequest(TWSUtil.java:29)
	at com.pansoft.bi.task.processor.TWSBaseProcessor.sendRequest(TWSBaseProcessor.java:150)
	at com.pansoft.bi.task.processor.TWSBaseProcessor.processTask(TWSBaseProcessor.java:77)
	at com.pansoft.bi.task.service.classes.TBITaskService.executeBITask(TBITaskService.java:311)
	at com.pansoft.bi.invoker.TWSInvoker.invoke(TWSInvoker.java:27)
	at com.pansoft.bi.task.bizlib.TBizBITaskService.invokeWS(TBizBITaskService.java:110)
	at com.pansoft.hx.bi.THXTaskSynchService.sendTask(THXTaskSynchService.java:85)
	at com.pansoft.hx.bi.THXTaskSynchService.sendTask(THXTaskSynchService.java:54)
	... 34 more> 

在tomcat上面使用axis2客户端调用没问题
但是部署到weblogic会报错,
客户端开发方式:根据报文拼接调用,代码如下

import java.text.ParseException;
import java.util.Iterator;
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axiom.soap.SOAPFactory;
import org.apache.axiom.soap.SOAPHeaderBlock;
import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
public class test {
	public static void getMsg(){
		try {
			String url = "http://IP/jxindependent/services/api/standardInterfaceObjectAdapter";
			Options options = new Options();
			// 指定调用WebService的URL
			EndpointReference targetEPR = new EndpointReference(url);
			options.setTo(targetEPR);
			ServiceClient sender = new ServiceClient();
			sender.setOptions(options);
			OMFactory fac = OMAbstractFactory.getOMFactory();
			String tns = "http://service.web.custom.baiwang.com";
			// 命名空间,有时命名空间不增加没事,不过最好加上,因为有时有事,你懂的
			OMNamespace omNs = fac.createOMNamespace(tns, "ser");
			//SOAPFactory sOAPFactory = OMAbstractFactory.getSOAP11Factory();
			OMElement header=fac.createOMElement("soapenv",omNs);
			//SOAPHeaderBlock soapHeader = sOAPFactory.createSOAPHeaderBlock("soapenv", omNs);
			sender.addHeader(header);
			OMElement method = fac.createOMElement("collect", omNs);		
			OMElement requestInfo = fac.createOMElement("requestInfo", null);
			OMElement content = fac.createOMElement("content", null);
			OMElement head = fac.createOMElement("head", null);
			method.addChild(requestInfo);
			requestInfo.addChild(content);
			requestInfo.addChild(head);
			//requestInfo.build();	
			// 参数content
			OMElement billingDate = fac.createOMElement("billingDate", null);
			OMElement checkCode = fac.createOMElement("checkCode", null);
			OMElement invoiceCode = fac.createOMElement("invoiceCode", null);
			OMElement invoiceNumber = fac.createOMElement("invoiceNumber", null);
			OMElement totalAmount = fac.createOMElement("totalAmount", null);
			// 给参数赋值
			billingDate.setText("2018-04-04");
			checkCode.setText("884274");
			invoiceCode.setText("051001700107");
			invoiceNumber.setText("42689932");
			totalAmount.setText("40212.27");
			content.addChild(billingDate);
			content.addChild(checkCode);
			content.addChild(invoiceCode);
			content.addChild(invoiceNumber);
			content.addChild(totalAmount);
			//content.build();
			//head
			OMElement accessKeyID = fac.createOMElement("accessKeyID", null);
			OMElement signature = fac.createOMElement("signature", null);
			OMElement signatureNonce = fac.createOMElement("signatureNonce", null);
			OMElement timeStamp = fac.createOMElement("timeStamp", null);
			OMElement version = fac.createOMElement("version", null);
			accessKeyID.setText("999999999_1000");
			signature.setText("1cfb3cdc9df3443d04de0192c4879797");
			signatureNonce.setText("2b657438dae54689a0d9fa44b981013f");
			timeStamp.setText("2019-01-28T09:57:51Z");
			version.setText("1.0");
			head.addChild(accessKeyID);
			head.addChild(signature);
			head.addChild(signatureNonce);
			head.addChild(timeStamp);
			head.addChild(version);
            //head.build();
			method.build();
			OMElement result = sender.sendReceive(method);
			@SuppressWarnings("rawtypes")
			Iterator itr = result.getChildElements();
			while (itr.hasNext()) {
				OMElement ome_l2 = (OMElement) itr.next();
				System.out.println(ome_l2.getText());//此为你服务端传过来的xml内容,下一步,你需要解析xml
			System.out.println(result);
			System.out.println(result.getText());
		} catch (AxisFault axisFault) {
			axisFault.printStackTrace();
	public static void main(String[] args) throws ParseException {
		getMsg();
		JSONObject obj=new JSONObject();
		List<String> contentlist=new ArrayList<String>();
		contentlist.add("billingDate");
		contentlist.add("checkCode");
		contentlist.add("invoiceCode");
		contentlist.add("invoiceNumber");
		contentlist.add("totalAmount");
        obj.put("content", contentlist);
        List<String> string = (List<String>)obj.get("content");
        for (String string2 : string) {
			System.out.println(string2);
		//Date date = new SimpleDateFormat("yyyyMMdd").parse("20050609");
		//String now = new SimpleDateFormat("yyyy-MM-dd").format(date);
		//System.out.println(now);
		double a=-1212.4599999;
		String s31 = new DecimalFormat("0.00").format(a);
		System.out.println(s31);

经过排查,原来是缺少jar包:woodstox-core-as.jar下面是maven地址

<!-- https://mvnrepository.com/artifact/org.codehaus.woodstox/woodstox-core-asl -->
<dependency>
    <groupId>org.codehaus.woodstox</groupId>
    <artifactId>woodstox-core-asl</artifactId>
    <version>4.1.0</version>
</dependency>
                    weblogic部署axis2开发的客户端报错:Error reading XMLStreamReader: Undeclared namespace prefix "soapenv"
                    Caused by: org.apache.axis2.AxisFault: Error reading XMLStreamReader: Undeclared namespace prefix "soapenv" at [row,col {unknown-source}]: [1,56]	at org.apache.axis2.util.Utils.getInboundFaultFromMe...
				
1)开启XXER工具python xxer.py -H 192.168.17.223 2)将xxer的poc放到xx.xml文件中,替换序列化后的数据,注入xxer的poc; java -jar weblogic_xxe.jar xx.xml 3)使用java-deserialization-exploit工具中的weblogic.py发送数据给weblogic服务器python weblogic.py 192.168.17.222 7001 weblogic
2014-6-13 10:24:19 org.apache.cxf.phase.PhaseInterceptorChain doDefaultLogging 警告: Interceptor for {http://xdaoimpl.test.com/}SayDaoImplService has thrown exception, unwinding now org.apache.cxf.bin
我们的项目中webservice服务器已经搭建好,基于用axis2提供名为FaceDbService的人脸识别服务。现在的任务是用gosap开发C++版本的客户端,所以最近在尝试用gsoap生成的c++代码来调用webservice. 关于生成gsoap C++客户端代码及编译,参见我的前一篇博客《gsoap入门:C/C++代码生成及编译》。 测试代码下面是测试代码#include <sstre
soapUI调用报错Error reading XMLStreamReader: Unexpected EOF in prolog 在使用soapUI的时候,我们经常会手动调整数据,以及对节点的调整,但是调整之后,有时候会报错这个错误。 详细的错误信息为: org.apache.cxf.binding.soap.SoapFault: Error reading XMLStreamReader: Unexpected EOF in prolog at [row,col {unknown-sourc
webserve调用的时候报错。但不是每次都报错,偶尔报错。 原因,如果调用webserver的时候,传的参数是json类型,那么就会报错。webserver也支持json但是兼容性不好。有时候会解析报错,使用xml的字符串报文就不会报错。 如果你使用的就是xml字符串报文,那就检查你的xml是不是一个合法的xml字符串。
使用Axis2这个webservice进行soap协议通讯,期间出了个问题,我(CLIENT)请求后,当服务端返回符合协议的SOAP异常报文,例如 ... 我的程序直接抛AxisFault异常,而正常来说,导致连服务端给我们的报文都没有接收成功。  --请注意,是我连报文都没有接收成功,而不是接收成功后我解析失败了。 try { ServiceClient serv
有一次升级android开发工具后发现xml脚本出现错误“Unexpected namespace prefix "xmlns" found for tag LinearLayout”,原来是一个namespace声明只要在xml中出现一次就可以了,多次出现就报错 解决办法: 只保留第一个声明,后面的直接删除就OK了。...
org.apache.cxf.binding.soap.SoapFault: Error reading XMLStreamReader. at org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:230) at org.apache.cxf
1. 将jar包上传到WebLogic服务器上。您可以使用sftp或scp等工具将其上传到服务器。 2. 登录WebLogic控制台。在浏览器中输入控制台的URL(例如http://localhost:7001/console)并使用管理员凭证登录。 3. 在左侧导航栏中,单击“Deployments”(部署)选项。 4. 单击“Install”(安装)按钮,在弹出的对话框中选择要安装的文件。 5. 选择您要部署的jar包并单击“Next”(下一步)。 6. 在“Deployment Plan”(部署计划)页面上,选择您的部署计划,并单击“Next”(下一步)。 7. 在“Target Selection”(目标选择)页面上,选择您要将jar包部署到的WebLogic服务器或群集,并单击“Next”(下一步)。 8. 在“Configuration”(配置)页面上,指定您的应用程序名称、上下文根路径和其他配置参数。单击“Next”(下一步)。 9. 在“Summary”(摘要)页面上,确认您的配置,并单击“Finish”(完成)。 10. 在WebLogic控制台中,选择“Deployments”(部署)选项卡,您将在列表中看到您刚刚部署的应用程序。 11. 单击应用程序名称,然后单击“Control”(控制)选项卡,您可以启动、停止或重新启动应用程序。
weblogic部署axis2开发的客户端报错:Error reading XMLStreamReader: Undeclared namespace prefix "soapenv" 13395