【问题标题】:Posting data over web services using Java, Ajax and json is not working使用 Java、Ajax 和 json 通过 Web 服务发布数据不起作用
【发布时间】:2013-02-11 17:43:43
【问题描述】:

有人可以帮我解决这个问题吗?这总是出错,但没有错误消息,只是 console.log。有什么好的方法来调试这个,或者你能看看这有什么问题吗?

谢谢! 萨米人

function foo(){

        alert('Button pressed');
        var user={"id":10,"firstName":" Ted","lastName":"TESTING","age":69,"freeText":"55555","weight":55};

        $.ajax({
        type: "POST",
        contentType: "application/json",
        url: "http://localhost:8080/testSoft/webresources/entity.user/",
        dataType: "json",
        data: user,

        success: function(data){alert(data);},
        error: function(data) {
        console.log('#####################error:################################'+data);                 
        alert('addUser error: ' + data.firstName);
        }
        });
        };

网络服务:

@POST
@Override
@Consumes({"application/xml", "application/json"})
public void create(User entity) {
    super.create(entity);
}

用户

public class User implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id")
private Integer id;
@Size(max = 45)
@Column(name = "firstName")
private String firstName;
@Size(max = 45)
@Column(name = "lastName")
private String lastName;
@Column(name = "age")
private Integer age;
@Lob
@Size(max = 65535)
@Column(name = "freeText")
private String freeText;
@Column(name = "weight")
private Integer weight;

【问题讨论】:

  • 那么“只是 console.log”告诉你什么?请求是否到达您的服务器端应用程序?你试过调试吗?
  • ####################error:################## ############[object Object] (19:50:22:273) alert('addUser error: ' + data.firstName);说错误:未定义。调试 javaScritp+ webservices 的最佳工具是什么?
  • 您是否在控制器操作中设置了断点以验证它是否被调用?此外,通常我会看到以“.something”结尾的 url 来指示客户端请求的数据类型,“.user”是您尝试实现的自定义格式吗?
  • INFO: ----User.java 构造函数在服务器端调用----- INFO: 找不到 java.lang.String 类的 JAX-B 元素,但它永远不会去创建方法或其母类 @POST @Consumes({"application/json"}) public void create(User entity) { System.out.println("---------------- -------------在UserFacadeREST中创建用户------------");超级创建(实体);如果有人在使用 NB 7.3RC2,您能否检查一下您的休息服务是否位于 Server-webservices 下的“服务”选项卡中?我没有
  • @BrMcMullin。它进入服务器端,但不是创建方法。当我在浏览器 localhost:8080/testSoft/webresources/entity.user 中测试 Web 服务时,我得到了很好的 xml 用户列表。

标签: java jquery ajax json web-services


【解决方案1】:

PLS 告诉我为什么这在函数之外起作用?如果我像这样插入对按钮的函数调用,它就不起作用:

<button type="submit" class="btn btn-primary" id="btnAddUser" onclick="foo()">Register</button>

但是当它在函数之外时它正在工作:

<script>
            var user={"id":10,"firstName":" Coka","lastName":"CocaCola","age":69,"freeText":"55555","weight":55};
            alert('user----->' +user.firstName);
            $.ajax({

            type: "POST",
            contentType: "application/json",
            url: "http://localhost:8080/testSoft/webresources/entity.user/",
            dataType: "json",
            data: JSON.stringify(user),

            success: function(data){alert(data);},
            error: function(data) {
            console.log('#####################error:################################'+data);                 
            alert('addUser error: ' + data.firstName);
            }
            });
        </script>

我的 JS 太差了,我也讨厌它,现在更讨厌了:(

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-06
    • 1970-01-01
    • 2012-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多