【问题标题】:Java Restful Web Service running only Android 4.4 Mobile not otherJava Restful Web Service 仅运行 Android 4.4 Mobile 而不是其他
【发布时间】:2016-05-11 11:42:26
【问题描述】:

我构建了一个 Java Restfull Web 服务,供运行在 Android Mobil 设备上的离子应用调用。

代码在Android 4.4 Mobile上成功运行。

没有运行在任何其他带有 os :android lollipop, marshmallow 的 android 移动设备上。

webservices web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
    <display-name>test</display-name>
    <servlet>
        <servlet-name>Jersey REST Service</servlet-name>
        <!-- <servlet-class>com.sun.jersey.server.impl.container.servlet.ServletAdaptor</servlet-class> -->
        <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>com.sun.jersey.config.property.packages</param-name>
            <param-value>test</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Jersey REST Service</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>
</web-app>

休息网络服务代码

package test;

import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;

@Path("/test")
public class test_Services
{
    @POST
    @Consumes("application/x-www-form-urlencoded")
    @Path("/insertTest")
    public String InsertTest(String json)
    {
        System.out.println("POST JSON>>>>>>>>>>>>>"+json);
        return json.toString();
    }
}

Rest webservice 依赖项

这是使用 ionic 和 angularjs 代码的 Hybride 应用程序

$http({
    method: 'POST',                
    url: 'http://mapps.testlab.local:8080/test/test/insertTest',
    data: data,
    headers: {                   
        "Content-Type": "application/x-www-form-urlencoded"
    }
}).then(function successCallback(res) {
}, function errorCallback(err) {           
    deferred.reject(res.err);            
});

当我在 Android lollipop 和 marshmallow 上使用 chrome 进行调试时,它给了我以下错误:

Failed to load resource: net::ERR_NAME_NOT_RESOLVED

请帮我解决这个问题。 我正在使用 Eclipse Mars.1 使用 JAVA

【问题讨论】:

  • 显示调用该服务的android代码,以及是否有任何错误日志
  • @Yazan 抱歉,我无法向您显示 Android 应用代码。
  • @Yazan android 应用程序端显示的错误是 Chrome 浏览器上的“无法加载资源:net::ERR_NAME_NOT_RESOLVED”。
  • @user3441151 你的安卓代码似乎不是安卓代码。

标签: android web-services ionic-framework java


【解决方案1】:

当我在我的电脑上调用ping mapps.testlab.local 时,我得到unknown host error,这意味着没有知道如何将“mapps.testlab.local”转换为 IP 地址的 dns 服务器。您所有的 android 设备是否都可以通过 wlan-intranet 访问知道“mapps.testlab.local”的 dns-server?还是连接到不知道“mapps.testlab.local”的互联网的非工作设备?

【讨论】:

    【解决方案2】:

    你一定是做错了什么。由于方法是POST 调用服务器,你不能使用简单的浏览器点击restService,你必须在谷歌浏览器中使用一些浏览器扩展,如-POSTMAN。首先安装扩展,然后使用 POSTMAN 调用 webUrl。如果你得到一些响应意味着你的 api 被调用了。现在你必须调用正确的 api 并调试 api 是否工作正常。这可能会解决您的问题。

    正如您所说,您正在尝试从 android 设备访问 weburl,但您提供的代码根本不是 android 源代码。

    【讨论】:

      猜你喜欢
      • 2013-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-30
      • 1970-01-01
      • 2011-01-18
      • 2014-11-27
      • 1970-01-01
      相关资源
      最近更新 更多