Обновление
Я поместил два проекта на один сервер, которые являются клиентскими и серверными приложениями RestAPI.Я установил 4200 в качестве порта для клиента (который написан на Angular 6) и порт 8990 для серверной стороны WebSrv.Я запускаю Spring с командой java -jar artifact.jar
, она отлично работает и отвечает на любые запросы.Но для клиентской стороны, когда я запускаю его со своей локальной машины с IP: localhost: 4200 (либо со встроенным компоновщиком IntellijIdea, либо с Angular CLI), он работает нормально и может отправлять запрос и получать ответ.Но когда я запускаю его с этого сервера (в том же месте, где расположен сервер WebSrv) и запускаю, он правильно показывает первую html-страницу, но когда я нажимаю кнопку для отправки запроса, ничего не происходит (ни исключение, ни какой-либо журнал), а сервер - нетполучаю любой запрос !!
Я искал свою проблему, но ничего не помогло. Буду признателен, если кто-нибудь поможет мне найти решение.Мне было интересно, если кто-нибудь знает, в чем проблема.
Вот мой код на стороне клиента (угловой)
import {Component, NgModule, OnInit} from '@angular/core';
import {HttpClient, HttpHeaders} from '@angular/common/http';
import {RouterModule, Router} from '@angular/router';
// const URL = 'http://localhost:8990/getUserId';
const URL = 'http://getuserid.mycompany.com:8990/getUserId';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
constructor(
private http: HttpClient
) {
}
fileToUpload: File = null;
id: String = '0';
inputId(event) {
this.id = event.target.value;
console.log('id is -- > ' + event.target.value);
}
inputFile(event) {
this.fileToUpload = event.target.files[0];
console.log('File path -- > ' + event.target.files[0].name);
}
onSubmit(id: string, file: File) {
const frmData = new FormData();
console.log('POST');
// @ts-ignore
frmData.append('id', this.id);
frmData.append('inputPackage', this.fileToUpload);
console.log('id --> ' + this.id);
console.log('File name --> ' + this.fileToUpload.name);
this.http.post(URL, frmData).subscribe(res => {
const resp = JSON.parse(JSON.stringify(res));
if (resp['user'] != null) {
if (resp['user']['user-id'] === false) {
alert('Successful!! Your User ID is : ' + resp['user']['user-id']);
} else {
alert('Sorry!! Error occurred : ' + resp['error-message']);
}
} else {
alert('Sorry!! Error occurred : ' + resp['error-message'] );
}
});
}
}
, а это мой код на стороне сервера (Spring Boot):
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
@Controller
public class GetUserIdController {
private final static String DESTINATION_PATH = "/srv/resources/";
// private final static String DESTINATION_PATH = "/mnt/d/DestPath/";
// private final static String DESTINATION_PATH = "C:/Resources/Temp/";
@CrossOrigin(origins = "http://localhost:4200", maxAge = 3600)
@RequestMapping(method = RequestMethod.POST, value = "/getUserId", headers = {"content-type=multipart/mixed","content-type=multipart/form-data"})
@ResponseBody
String Response(@RequestParam("inputPackage") MultipartFile[] inputPackages, @RequestParam("id") String id) {
String response = null;
String id ;
try {
if (inputPackages != null && id != null && inputPackages.length > 0 && id.length() > 1) {
ReceivedPackage recvPackage = new ReceivedPackage();
recvPackage.setPId(id);
if (inputPackages[0].getOriginalFilename() != null ) {
if( inputPackages[0].getOriginalFilename().contains(".zip")) {
FileUtils.saveFile(inputPackages[0].getInputStream(),inputPackages[0].getOriginalFilename(), DESTINATION_PATH);
recvPackage.setPackageName(inputPackages[0].getOriginalFilename());
recvPackage.setPackagePath(DESTINATION_PATH);
recvPackage.setInputPackage(new File ( recvPackage.getPackagePath()));
response = GetUserId.runProcess(recvPackage, DESTINATION_PATH, id);
}else{
response = "<error-message>The input file : "+ (inputPackages[0].getOriginalFilename())+" is invalid!!\n It should be a zip file!</error-message>";
}
}
}else{
response = "<error-message>The ID and valid zip file should be provide!</error-message>" ;
}
} catch (IOException e) {
e.printStackTrace();
}
return FileUtils.getJSONFormat(response);
}
}
Заранее спасибо.