Spring, POST'owanie z Ajaxa

Odpowiedz Nowy wątek
2014-09-17 00:24
0

Hej, mam problem z wysłaniem wiadomości AJAX'em do Javy
Ajax:


<script type="text/javascript">
        var markers ={"name": "Dupa", "keywords": "dupa,dupa", "bid_amount": "5", "campaign_fund": "50", "status": "ON", "town": "Zakopane", "radius": "52"};

        $.ajax({
            type: "POST",
            url: "http://localhost:8080/peksa/rest/create",
            async : false,
            data: JSON.stringify(markers),
            contentType: "application/json",
            dataType: "json",
            success: function(data){alert(data);},
            error: function(errMsg){console.log(errMsg); alert(JSON.stringify(markers));}       
        });

    </script>

Java:

@POST
    @Consumes(MediaType.APPLICATION_JSON)
    public void create(Campaign campaign) {
        em.persist(campaign);   
    }

Baza danych:

@Data
@Entity
@Table(name = "Campaign")
public class Campaign 
{

    @Id
    @Column(name = "Name", unique = true, nullable = false)
    private String name;

    @Column(name = "Keywords", nullable = false)
    private String keywords;

    @Column(name = "Bid_amount", nullable = false)
    private String bid_amount;

    @Column(name = "Campaign_fund", nullable = false)
    private String campaign_fund;

    @Column(name = "Status", nullable = false)
    private String status;

    @Column(name = "Town", nullable = false)
    private String town;

    @Column(name = "Radius", nullable = false)
    private String radius;
}

Konsola przeglądarki wypluwa: "400 Bad Request"
Ktoś, coś?

Pozostało 580 znaków

2014-09-17 08:04
0

1)data: JSON.stringify(markers), to wkoncu wysylasz JSON czy string
2) W kontrolerze do parametru @RequestBody

RequestBody to springowe, a autor wątku używa restów z JEE - Marszal 2014-09-17 08:34
W tytule jest Spring - Szczery 2014-09-17 09:27
Masz racje nie wiem czemu do robienia JSONA kojarzy mi sie JSON.toJSON() - Szczery 2014-09-17 11:24

Pozostało 580 znaków

2014-09-17 10:02
1

Przetestowałem ten twój kod u mnie i działa - poprawnie mapuje sobie jsona na obiekt, również wywołanie ajaxowe jest ok. Możliwe, że masz coś źle w konfiguracji JAX-RS

edytowany 1x, ostatnio: Marszal, 2014-09-17 10:03

Pozostało 580 znaków

2014-09-17 11:06
0

Ale co mogę mieć źle? Skoro łapie funkcję, a zwraca 400 bad request to adresy się zgadzają, robię projekt i stanąłem na tym dziadostwie, jakieś pomysły gdzie w konfiguracji może być błąd?
/edit
Logi z przeglądarki:

POST http://localhost:8080/peksa/rest/create 400 (Bad Request) jquery.min.js:4
Object {readyState: 4, getResponseHeader: function, getAllResponseHeaders: function, setRequestHeader: function, overrideMimeType: function…}
edytowany 1x, ostatnio: Pexak, 2014-09-17 11:41

Pozostało 580 znaków

2014-09-17 12:07
0

Oracle mówi:
"If the URI path template variable cannot be cast to the specified type, the JAX-RS runtime returns an HTTP 400 (“Bad Request”) error to the client."

W zasadzie nie masz @PathParam
ale pewnie do posta też się to tyczy.

Moim zdaniem zła konfiguracja JAX-RS.

Pozostało 580 znaków

2014-09-17 12:17
0

Nowy log - JEST CORAZ LEPIEJ

Unrecognized field "promotionId" (class pl.peksa.byleco.User), not marked as ignorable (2 known properties: "username", "password"])
 at [Source: org.glassfish.jersey.me[email protected]4d3c3ba7; line: 1, column: 17] (through reference chain: pl.peksa.byleco.User["promotionId"])

Tylko tutaj pojawia się problem bo nie mam takiej klasy "User", kiedyś była, ale została usunięta, a projekt przekompilowany milion razy

Pozostało 580 znaków

2014-09-17 13:08
0

No ale na serwerze jest klasa user która nie ma takiego pola promotionId

Pozostało 580 znaków

2014-09-17 13:16
0

klN9pS.gif

Pozostało 580 znaków

2014-09-17 13:36

Marszal - dzięki za pomoc, miałeś rację, w pomie webservice machnąłem się przy zmienianiu nazw i maven nie łapał : p, a dokładnie gdyby ktoś miał kiedyś taki problem to:

<dependency>
        <groupId>pl.peksa.byleco</groupId>
        <artifactId>dzialaj.service</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>

ArtifactId nie pokrywał się z artifactID tego właśnie POM'A

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0