当前位置: 首页 > 知识库问答 >
问题:

Apache Axis NumberFormatException:正整数无效

岳硕
2023-03-14

当我试图通过使用ApacheAxis发送SOAP消息作为输入来使用web服务时,我遇到了以下错误。

代码段:

Calendar calendar = Calendar.getInstance();
            SimpleDateFormat simpledateformat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");


            byte[] fileBytes = null;

            fileBytes=getZipBytes(s); //get the zipped bytes

            SimpleDateFormat formatter =  new SimpleDateFormat("yyyyMMdd");
            Date d=formatter.parse(formatter.format(calendar.getTime()));

            UUID uuid = UUID.randomUUID();   
            String uid=trimUUID(uuid.toString());

            String ETIN="11111";
            String EFIN="111111";

            String msgID= ETIN+getJulian7FromDate(d)+uid;

            String timeStamp=simpledateformat.format(calendar.getTime());

            WebServiceLocator fsetlocator=new WebServiceLocator();
            SendSubmissions servicesoap=fsetlocator.getSendSubmissions(s4);


            SOAPHeaderElement soapheaderelement_1 = new SOAPHeaderElement("http://xyz.org", "userHeader"); //Sample URL

            SOAPElement node1 = soapheaderelement_1.addChildElement("Username");   
            node1.addTextNode("admin");   

            SOAPElement node2 = soapheaderelement_1.addChildElement("Password");   
            node2.addTextNode("pwd");

            SOAPHeaderElement soapheaderelement_2 = new SOAPHeaderElement("http://www.abc.com/GatewayService", "msgHeader"); //Sample URL

            SOAPElement node3 = soapheaderelement_2.addChildElement("message");   
            node3.addTextNode(msgID);   

            SOAPElement node4 = soapheaderelement_2.addChildElement("job");   
            node4.addTextNode("Submit");

            SOAPElement node5 = soapheaderelement_2.addChildElement("Timestamp");   
            node5.addTextNode(timeStamp);   


            SOAPElement node8 = soapheaderelement_2.addChildElement("Process");   
            node8.addTextNode("T");      


           ((Stub) servicesoap).setHeader(soapheaderelement_1);
           ((Stub) servicesoap).setHeader(soapheaderelement_2);


            SubmissionDataListType submissiondatalisttype=new SubmissionDataListType();

            String submissionsCount = getCount(s); // returns a count value

            System.out.println("Count : "+submissionsCount);

            submissiondatalisttype.setCount(new PositiveInteger(submissionsCount));

            int cnt=Integer.parseInt(submissionsCount);

            SubmissionDataListTypeSubmissionData submissiondata[] = new SubmissionDataListTypeSubmissionData[cnt];

            for (int i=0 ; i<cnt ; i++){
            submissiondata[i]=new SubmissionDataListTypeSubmissionData();
            UUID uuid1 = UUID.randomUUID();  
            submissiondata[i].setSubmissionId ( EFIN + getJulian7FromDate(d) + trimUUID(uuid1.toString()));
            Calendar calendar1 = Calendar.getInstance();
            submissiondata[i].setElectronicPostmark(calendar1);
            submissiondata[i].setCategory(CategoryType.StateWH);
            }

            submissiondatalisttype.setSubmissionData(submissiondata);           

            SubmissionDataListType subdatalist=new SubmissionDataListType(new PositiveInteger(submissionsCount),submissiondata);

            SubmissionRecieptListType submissionreceiptlisttype =servicesoap.sendSubmissions(submissiondatalisttype, fileBytes);


            SubmissionRecieptListTypeSubmissionReceipt receipt[] = submissionreceiptlisttype.getSubmissionReceipt();
            FileOutputStream fileoutputstream = new FileOutputStream("Transmit.txt");
            PrintStream printstream = new PrintStream(fileoutputstream);

            for(int i=0; i<cnt;i++){
            printstream.println(receipt[i].getSubmissionId());
            }
            printstream.close(); 

        } catch(Exception exception)
        {
            System.out.println(exception.getMessage());
            throw exception;
        } 

java.lang.数字格式异常:无效的正整数:0org.apache.axis.encoding.ser.SimpleDeserializer.onEndElement(SimpleDeserializer.java:176)org.apache.axis.encoding.DeseriazerImpl.endElement(DeseriazerImpl.java:502)org.apache.axis.encoding.在org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:171)org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141)在org.apache.axis.message.RPCElement.deserialize(RPCElement.java:236)在org.apache.axis.message.RPCElement. getParams(RPCElement. java: 384)在org. apache. axis. client。调用调用(Call. java: 2467)在org. apache. axis. client。在org. apache. axis. client.调用(Call. java: 2366)。Call. java: 1812

线程“main”AxisFault故障代码中出现异常:{http://schemas.xmlsoap.org/soap/envelope/}服务器。userException faultSubcode:faultString:java。lang.NumberFormatException:无效的正整数:0 faultActor:在此输入代码FaultNode:
faultDetail:{http://xml.apache.org/axis/}stackTrace:java。lang.NumberFormatException:组织中的无效正整数:0。阿帕奇。轴编码。瑟。简单序列化程序。org上的onedelement(SimpleDeserializer.java:176)。阿帕奇。轴编码。反序列化impl。org上的endElement(反序列化impl.java:502)。阿帕奇。轴编码。反序列化上下文。org上的endElement(DeserializationContext.java:1087)。阿帕奇。轴消息SAX2腹记分器。在org上重播(SAX2EventRecorder.java:171)。阿帕奇。轴消息MessageElement。org上的publishToHandler(MessageElement.java:1141)。阿帕奇。轴消息加速。在org上反序列化(RPCElement.java:236)。阿帕奇。轴消息加速。org上的getParams(RPCElement.java:384)。阿帕奇。轴客户呼叫在org上调用(Call.java:2467)。阿帕奇。轴客户呼叫在org调用(Call.java:2366)。阿帕奇。轴客户呼叫调用(Call.java:1812)

我正在创建一个自定义SOAP头,SOAP主体包含MTOM attachement(压缩的XML内容,以字节为单位)和一个Id(正整数值)。我试着检查身份证是否为阳性。

共有1个答案

微生雨泽
2023-03-14

零不是正整数,它是无符号的。正整数从1开始,然后从1开始递增。

 类似资料:
  • 在这个代码中,-20应该是最小值,因为它是负数,并且离零最远,正确吗?但当我运行MinAlgoritm时,会打印出整数5。我有一个最大版本的这个可以很好地工作,但这个不行。这怎么可能?我能做些什么改进吗?

  • 问题内容: 我正在为我的游戏创建高分功能,但无法正常工作 这是我的方法: 它所做的是从.txt文件中读取最新的高分,并检查玩家得分是否更高(如果是),它将新的高分写入文件 我通过使用then并在第10行将字符串从int转换为int,作为测试,但是我抛出一个错误,说即使我转换为int并转换了self ,也无法添加str和int 。得分,因此出于某种原因其中一项转换无效 问题答案: 返回一个整数,但是

  • 问题内容: 任何数据类型的上限(不包括)总是比下限的绝对值小1。 例如,an的上限为2,147,483,647,ABS(下限)= 2,147,483,648。 是否有理由总是总是比负整数多一个负整数? 编辑:更改,因为问题与数据库不直接相关 问题答案: 您提供的类型是有符号整数。让我们来看一个字节(8位)的示例。使用1字节,您可以使用组合来存储256个可能的数字。 现在,您要具有相同数量的正数和负

  • 我目前正在做一个Airflow项目,其中一个DAG正在触发这个SQL查询: 该查询应该将数据从Mssql数据库传输到Mysql数据库。但当它运行时,我会得到以下错误: 我想我理解错误的含义,值'Lager4'应该写入列typ中,但被写入列fertig中。但我似乎无法在查询中找到导致错误的问题。

  • 我正在简单的C程序中试验无符号int数据类型和主方法参数。作为一个实验,我写了一个程序,从命令行获取一个int数作为main方法的参数,并对该数和0之间的每个整数求和。 例如,程序计算 f(n) = (1 2 3... n) 当 n 时有效 我开始注意到的第一件事是当f(n) 我手动发现数学上的最大值,我的程序生成的结果将是有效的(例如,在整数溢出之前),对于有符号整数为65535,对于无符号in

  • 给定一个按严格递增顺序排序的正整数数组arr和一个整数k。 查找此数组中缺少的第k个正整数。 示例1: 输入:arr=[2,3,4,7,11],k=5输出:9说明:缺少的正整数是[1,5,6,8,9,10,12,13,…]。第五个缺失的正整数是9。示例2: 输入:arr=[1,2,3,4], k=2输出:6解释:缺少的正整数是[5,6,7,...]。第二个缺失的正整数是6。 约束条件: 1. 1.