2014-12-06 3 views
0

이것은 이전 게시물과 다소 비슷하지만 특정 시점에 초점을 맞추고 있습니다.이 시점에서 앞으로 나아갈 수 있기 전에이 특정 질문에 대한 답을 정말로 알고 있기 때문입니다. Java SE 응용 프로그램에서 Java EE 웹 응용 프로그램으로 JSON 객체의 형태로 정보를 보내야합니다. Java EE 웹 응용 프로그램은 GlassFish의 NetBeans에서 실행됩니다. Java SE 및 Java EE 응용 프로그램은 모두 동일한 컴퓨터에서 실행됩니다.소켓 또는 HTTP POST 요청?

소켓 연결, http 게시 요청 연결 또는 소켓 및 http 게시 요청 연결의 조합이 둘 다 동일한 컴퓨터에 있다고 간주 할 때 두 응용 프로그램간에 통신하는 가장 좋은 방법은 무엇입니까?

나는 정말로 모든 응답을 부탁드립니다.

+0

HTTP에는 소켓이 필요하므로 모든 HTTP 연결도 소켓 연결이지만 소켓 연결에는 HTTP 연결이 아닙니다. 따라서 HTTP는 더 많은 오버 헤드를 발생시킵니다. –

+0

그런데 대단히 감사합니다. 위에서 설명한 시나리오에서 소켓 연결 연결을해야합니까? – Daron

+0

소켓 연결은 HTTP와 마찬가지로 모든 바이트 스트림을 전송하는 데 사용할 수 있습니다. 두 경우 모두 객체를 직렬화해야합니다. –

답변

1

Glassfish를 이미 사용하고있는 경우 자체 구현 소켓 또는 HTTP를 선택하는 것은 간단합니다. HTTP를 사용하십시오.

글래스 피시는 이미 소켓 연결을 통해 클라이언트와 통신 할 수있는 코드를 검증하고 테스트했으며 HTTP 프로토콜을 구현했으며 스레드 풀을 사용했습니다.해야 할 일은 모든 복잡한 운송을 추상화하는 작은 서블릿 클래스를 구현하는 것입니다 세부 사항 멀리.

클라이언트 측에서는 Apache HTTP client과 같은 라이브러리를 사용할 수 있습니다.

확실한 일반 소켓을 사용할 수 있습니다. 하지만 자신의 프로토콜을 구현하고 싶습니까? 왜? 그런 다음 동일한 컴퓨터에있는 클라이언트와 서버에서 작동 할 수 있습니다. 하지만 나중에 프록시 서버 또는 방화벽을 사용하여 인터넷을 통해 연결을 사용하려고합니다. 올바른 라이브러리를 사용하는 HTTP에서는 아무런 문제가 없습니다.

+0

vanje ... HTTP Post 요청으로 같은 컴퓨터에서 통신 할 수 있습니까? 또한 Java EE 측에서 코드를 몇 개나 넣을 것입니까? 코드를 하나의 서블릿에 넣을 수 있습니까? 아니면 XML 파일이나 다른 장소를 코딩해야합니까? – Daron

+0

예, 동일한 컴퓨터에서 작동합니다. 루프백 인터페이스 127.0.0.1 (localhost)을 사용하십시오. XML 파일을 구성 할 필요없이 서블릿을 작성할 수 있습니다. 여기를보세요 http://stackoverflow.com/questions/5031018/how-to-invoke-a-servlet-without-mapping-in-web-xml – vanje

+0

나는 아직도 당신이 보낸 정보를보고있어 너무 고마워요. 나를 도울 시간을내어주었습니다. 이것은 나에게 너무 중요합니다. 마지막 두 가지 질문 : 서블릿이 배치되는 위치와 Apache HTTP Client jar를 Java SE 및 Java EE 응용 프로그램 모두에 배치해야하는지 여부가 중요합니까? – Daron