@Nitzan верен тем, что к моменту совершения POST-вызова должен быть сервлет, уже запущенный.
Я работаю над проектом, который включает интерфейс Angular2 и службу RESTful Java для задней части. Вы можете увидеть, как я построил свой ответ на этот вопрос: how to integrate Angular 2 + Java Maven Web Application
Для моего проекта я запускаю сервлет tomcat (версия 8.0.27) внутри netbeans, который также служит для моего приложения. Это гарантирует, что сервер будет прослушивать конкретные запросы, сделанные приложением, когда пользователь доберется до этой точки.
фрагменты кода
data.service.ts
Большая часть этого .ts файл пришел из Angular Developer guide, заслуга автора этого.
import { Injectable } from '@angular/core';
import { Http, Headers, RequestOptions } from '@angular/http';
import { Observable } from 'rxjs/Observable';
@Injectable()
export class DataService {
constructor (private http: Http) {} // Inject Http client Service
private baseListUrl: string = 'bar/request?id=';
sendInput (input: string) {
let uInput = JSON.stringify({input});
let header = new Headers({'Content-Type': 'MIMETYPE/HERE'});
let options = new RequestOptions({ headers: headers});
this.http.post(this.baseListUrl.concat(input), uInput, options)
.map(this.extractData)
.catch(this.handleError);
}
private extractData(res: Response) {
let body = res.json();
// alert("body: " + body);
return body.docs || {};
}
private handleError (error: any) {
// In a real world app, we might use a remote logging infrastructure
// We'd also dig deeper into the error to get a better message
let errMsg = (error.message) ? error.message :
error.status ? `${error.status} - ${error.statusText}` : 'Server error';
console.error(errMsg); // log to console instead
return Observable.throw(errMsg);
}
}
foo.java
@Path("bar")
public class Baz{
@POST
@Path("/request")
@Consumes(Mediatype.MIMETYPE_HERE)
public Response doWhatYouNeed(string input) {
// I don't have the exact code for you, but this should serve as a good starting point.
}
}
Вы должны иметь контейнер работает ваш сервлет, а затем сделать запрос HTTP (POST), вероятно, в URL этого сервлета. –
[HTTP-клиент Angular2] (https://angular.io/docs/ts/latest/guide/server-communication.html#!#update) –
Я использую eclipse neon с сервером apache tomcat v9.0 –