프런트 엔드에는 Ember를 사용하고 백엔드에는 Java를 사용하고 있습니다. localhost : 8080을 입력 할 때 Ember 홈페이지 index.html을 보여줘야합니다. 이전에, 내가 Node.js를 사용하고 아래 라인은 자바로 이동에서 지금 트릭을 Java HTTP 서버에서 응답 파일 보내기
res.sendfile('./public/index.html');
를했다, 나는 동일한 결과를 얻을 수 없어요. 나는 아래의 코드를 시도했다.
public static void main(String[] args) throws Exception
{
HttpServer server = HttpServer.create(new InetSocketAddress(8080), 0);
server.createContext("/", new HHandler());
server.createContext("/getbookarray", new MyHandler());
server.setExecutor(null); // creates a default executor
server.start();
}
static class HHandler implements HttpHandler
{
@Override
public void handle(HttpExchange t) throws IOException
{
File file = new File("..\\public\\index.html");
String response = FileUtils.readFileToString(file);
String encoding = "UTF-8";
t.getResponseHeaders().set("Content-Type", "text/html; charset=" + encoding);
t.getResponseHeaders().set("Accept-Ranges", "bytes");
t.sendResponseHeaders(200, response.length());
OutputStream os = t.getResponseBody();
os.write(response.getBytes("UTF-8"));
os.close();
}
}
하지만 불행히도 홈페이지 페이지를로드하려고 할 때 아래 오류가 표시됩니다.
"Uncaught SyntaxError: Unexpected token <"
Node.js를 사용하여 처리 할 때 동일한 Ember 응용 프로그램이 정상적으로 작동합니다. 나는 HTTP 응답을 제대로 보내지 않을 것이라고 생각한다. 어떤 도움을 주셔서 감사합니다.
'os.close()'앞에 'os.flush()'를 사용하여 차이가 있는지 확인하십시오. – edkeveked