如何解决 org.xmlpull.v1.XmlPullParserException: 意外类型 (position:END_DOCUMENT null@1:1 in java.io.InputStreamReader@40d310f0)

2023-12-09

我使用 jax-ws 创建了简单的 Web 服务。我需要在android中使用该网络服务。 当我使用该网络服务时,我收到此错误org.xmlpull.v1.XmlPullParserException: unexpected type (position:END_DOCUMENT null@1:1 in java.io.InputStreamReader@40d310f0)

我的 wsdl 代码:

<definitions targetNamespace="http://sample.jaxws.ws.blog.accrd.com/" name="SimpleWebServiceService">
<types>
<xsd:schema>
<xsd:import namespace="http://sample.jaxws.ws.blog.accrd.com/" schemaLocation="http://localhost:8080/SimpleWebService/SimpleWebService?xsd=1"/>
</xsd:schema>
</types>
<message name="sayHello"><part name="parameters" element="tns:sayHello"/></message><message name="sayHelloResponse">
<part name="parameters" element="tns:sayHelloResponse"/>
</message>
<portType name="SimpleWebService"><operation name="sayHello">
<input wsam:Action="http://sample.jaxws.ws.blog.accrd.com/SimpleWebService/sayHelloRequest" message="tns:sayHello"/>
<output wsam:Action="http://sample.jaxws.ws.blog.accrd.com/SimpleWebService/sayHelloResponse" message="tns:sayHelloResponse"/>
</operation>
</portType>
<binding name="SimpleWebServicePortBinding" type="tns:SimpleWebService">
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/><operation name="sayHello">
<soap12:operation soapAction=""/>
<input>
<soap12:body use="literal"/>
</input>
<output>
<soap12:body use="literal"/>
</output>
</operation>
</binding>
<service name="SimpleWebServiceService">
<port name="SimpleWebServicePort" binding="tns:SimpleWebServicePortBinding"><soap12:address location="http://localhost:8080/SimpleWebService/SimpleWebService"/>
</port>
</service>
</definitions>

我的活动:

public class MainActivity extends Activity {


  public final static String URL ="http://localhost:8080/SimpleWebService/SimpleWebService?wsdl"; 
  public  static final String NAMESPACE = "http://sample.jaxws.ws.blog.accrd.com/";
  public static final String SOAP_ACTION = "http://sample.jaxws.ws.blog.accrd.com/sayHello"; 
  private static final   String METHOD = "sayHello";




@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main); 
    final TextView tv = (TextView) findViewById(R.id.txt1);
    Button btn = (Button) findViewById(R.id.button1);

    btn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            SoapObject request = new SoapObject(NAMESPACE, METHOD);
            Customer cu = new Customer();

            cu.setFirstName("FirstName");
            cu.setLastName("LastName");
            PropertyInfo propInfo = new PropertyInfo();
            propInfo.name = "arg0";
            propInfo.type = Customer.class;
            request.addProperty(propInfo, cu);




            SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
                    SoapEnvelope.VER12);




            envelope.setOutputSoapObject(request);
            HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);


            try {
                androidHttpTransport.call(SOAP_ACTION, envelope);
                Log.d("Error", "Finished");

                SoapObject response=(SoapObject)envelope.bodyIn;



                tv.setText(response.toString());

            } catch (Exception e) {
                Log.d("Error", e.toString());

            }

        }
    });

}}

我的客户.java

    public class Customer implements KvmSerializable {

    private String firstName;

    private String lastName;

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    @Override
    public Object getProperty(int arg0) {
        Object object = null;
        switch (arg0) {

        case 0:
            object = this.firstName;
            break;
        case 1:
            object = this.lastName;
            break;

        }
        return object;

    }

    @Override
    public int getPropertyCount() {
        // TODO Auto-generated method stub
        return 2;
    }

    @Override
    public void getPropertyInfo(int arg0, Hashtable arg1,
            PropertyInfo propertyInfo) {
        switch (arg0) {
        case 0:
            propertyInfo.name = "firstName";
            propertyInfo.type = PropertyInfo.STRING_CLASS;
            break;

        case 1:
            propertyInfo.name = "lastName";
            propertyInfo.type = PropertyInfo.STRING_CLASS;
            break;

        }

    }

    @Override
    public void setProperty(int arg0, Object object) {
        switch (arg0) {

        case 0:
            this.firstName = object.toString();
            break;

        case 1:
            this.lastName = object.toString();
            break;

        }

    }

}

当我在 jax-ws web 服务中使用 @BindingType issoap1.1 时,我得到了正确的响应。但是当我在 jax-ws webservice 中使用 @BindingType issoap1.2 时,我收到此错误org.xmlpull.v1.XmlPullParserException:意外类型(位置:END_DOCUMENT null@1:1 in java.io.InputStreamReader@40d310f0)。

如何解决这个问题?


与 @jeevamuthu 交谈后,问题是他必须将 ksoap 库添加到他的构建路径中,并对他的代码进行细微调整。如果您遇到类似问题,请联系@jeevamuthu 以获取解决此问题的信息。

PropertyInfo propInfo = new PropertyInfo(); 
propInfo.name = "arg0"; propInfo.value=cu; 
propInfo.type = Customer.class; 
request.addProperty(propInfo);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何解决 org.xmlpull.v1.XmlPullParserException: 意外类型 (position:END_DOCUMENT null@1:1 in java.io.InputStreamReader@40d310f0) 的相关文章

  • 如何设置长PreferenceScreen的滚动位置

    Android 应用程序有一些很长的首选项屏幕 它们始终在首选项菜单的顶部打开 我知道用户想要在首选项菜单中的位置 如何强制打开首选项屏幕并滚动到特定的首选项项目 我知道这是一个旧问题 所以这个答案仅供参考 要自动选择给定屏幕 您所要做的就
  • 带身份验证的 MediaPlayer RTSP 视频流

    我能够在未经授权的情况下从网络摄像机流式传输视频 但现在我需要在授权的情况下执行此操作 我发现很少有信息表明 Android 不支持 RTSP 身份验证 但我发现另一条信息表明 通过使用该方法添加标头 可以在 API 级别 14 中实现身份
  • 致命异常:Google 地图 V2 中的 GLThread、StackOverflowError

    我正在实施 Google 地图 V2 并利用从外部 GPX 文件接收的交付路线 设备路径 设备当前位置和交付点位置 问题是它大多数时候都有效 我收到的错误 当它不起作用时 是下一个 03 16 20 48 37 811 I dalvikvm
  • 在解决依赖关系之前运行 gradle 任务

    我想运行一个 gradle 任务 在 gradle 尝试解决依赖关系之前获取其他源并设置它们 在 build gradle 中有一个任务 用于获取子项目的源代码 该任务需要在 Gradle 尝试解决依赖关系之前运行 因为子项目是依赖关系的一
  • 检测正在插入的设备

    我希望能够检测设备是否已插入 我希望能够像查询连接状态一样进行查询 这可能吗 或者我是否需要创建一个监听电池事件的广播接收器 显然是ACTION BATTERY CHANGED http developer android com refe
  • 强制关闭导致HTTP实体可能不为空

    这里是发送数据 Http 的完整代码 asynctask private class MyAsyncTaskPupuk extends AsyncTask
  • 读取 Android 4.2 中的 APN?

    我有个问题阅读 APN在安卓v4 2中 是读 不是写APNS 它抛出一个安全异常 没有写入 APN 设置的权限 用户 10068 和当前用户都没有权限 进程有 android permission WRITE APN SETTINGS 相同
  • Android 测试 java.lang.NoClassDefFoundError 由于 Fest-Android 出现错误

    我目前正在我的项目中实现 Android 版 Fest 但我似乎遇到了依赖问题 如果我在不包含 Fest 库的情况下运行测试 测试将正常运行 一旦我添加了 Fest 库 测试就不再运行 相反 会抛出异常 我的项目使用以下依赖项 compil
  • android studio更新到3.0后任务执行失败

    当我更新 Android Studio 3 0 时 出现错误 unable to merge with dex 然后我添加了mutiDexEnabled true并且还添加了com android support multidex 1 0
  • 垂直翻转 Android Canvas

    有没有一种简单的方法可以在 Android 中翻转画布 我似乎找不到任何可以让我垂直翻转它的东西 这样 y 轴上的零就是手机屏幕的底部而不是顶部 如果解决方案不是特别快也没关系 因为我没有对画布进行任何计算密集的操作 提前致谢 Try ca
  • Android:让用户从图库中选择图像或视频

    是否可以以这样的方式启动图库 以便同时显示图片和视频 Thanks 从图库中选择音频文件 Use MediaStore Audio Media EXTERNAL CONTENT URI Intent intent new Intent In
  • Android 上 Java 库中的代码出现 NoClassDefFoundError

    我的用户经常遇到错误 应用程序在启动期间崩溃 当应该加载 MainActivity 时 VM 显然找不到该类 我不明白为什么 该应用程序的架构是 我的免费版和专业版都使用一个通用项目 不知道是否相关 请参阅下面的堆栈跟踪 有什么想法吗 ja
  • 通过 Intent 从文件管理器中选择文件

    我想做的 我想获取文件字符串形式的路径 我通过 Android 文件管理器选择该路径 我拥有的 Intent intent new Intent Intent ACTION GET CONTENT intent setType startA
  • Firebase 云消息传递 - 如何验证令牌?

    我正在使用 Firebase Cloud Messaging FCM 并且每次在客户设备上生成新令牌时 都会根据下面的缩写代码 我将此新令牌发送到我的服务器数据库 云 并将其保存在其中 以便能够发送未来推送通知使用 CFM API 从服务器
  • 在应用程序之间共享自定义帐户验证器

    我有一个为使用自定义 AccountAuthenticator 的客户端构建的应用程序 它工作得非常好 并且满足了客户的需求 但是 这只是将使用相同身份验证管理器的应用程序集合中的第一个应用程序 这就是我不确定如何继续的地方 我无法知道任何
  • toArray 与预先确定大小的数组

    使用时ar toArray new String ar size 安卓工作室3 2 1警告预先确定大小的数组并建议空数组 有两种方式将集合转换为数组 使用 预先确定大小的数组 如 c toArray new String c size 或使
  • 错误:类 kotlin.reflect.jvm.internal.FunctionCaller$FieldSetter

    我已尝试一切方法来消除此错误 但它不断出现 Class kotlin reflect jvm internal FunctionCaller FieldSetter can not access a member of class com
  • 如何为部分 Android 活动创建通用代码?

    我的申请中有 14 项活动 这 9 个活动中包含自定义标题栏和选项卡窗格 所以在这里我需要在一个地方编写这个通用代码 而不是在每个包含自定义标题栏和选项卡窗格代码的活动中编写冗余代码 即布局及其活动特定代码 有哪些可能的方法可以做到这一点
  • 如何在 Android 的应用程序中使用 LDAP 身份验证?

    我想在我们的应用程序中添加 LDAP 身份验证 我在 Github 上搜索并找到了两个应用程序 但它们无法连接到服务器 通过ldap连接服务器的必要条件是什么 查看 UnboundID SDK 他们有一个适用于 Android 的套件 该应
  • Android 中用于过渡的自定义动画对象?

    我想用一些更奇特的东西来覆盖 Android 中的默认活动转换 我想做的事情不能用通常使用的 XML 集来完成 所以我不能使用overridePendingTransition因为它只接受对基于 XML 的动画资源的整数引用 我想做的是创建

随机推荐