Glassfish http 수신기를 포트 443/80으로 구성

Glassfish http 수신기를 포트 443/80으로 구성

Linux의 Glassfish 3.1.2.2 Build 5에서 http 수신기를 구성하고 싶습니다. http-listener-1의 설정을 포트 80으로, http-listener-2의 설정을 포트 443으로 변경했습니다. 이는 기본 포트 8080 및 8181 대신 이러한 포트에서 수신 대기하는 것입니다. 따라서 domain.xml은 다음과 같습니다.

<network-listeners>
          <network-listener port="80" protocol="http-listener-1" transport="tcp" name="http-listener-1" thread-pool="http-thread-pool"></network-listener>
          <network-listener port="443" protocol="http-listener-2" transport="tcp" name="http-listener-2" thread-pool="http-thread-pool"></network-listener>
          <network-listener port="4848" protocol="admin-listener" transport="tcp" name="admin-listener" thread-pool="admin-thread-pool"></network-listener>
</network-listeners>

콘솔, 관리 콘솔을 통해 시도하고 파일을 수동으로 편집했습니다. 결과적으로 Glassfish를 시작할 수 없으며 Ubuntu 12 및 Red Hat 6.4에서 다음 오류가 발생합니다.

java.net.BindException: permission denied: 443=com.sun.enterprise.v3.services.impl.monitor.MonitorableSSLSelectorHandler@239190ce
    at com.sun.grizzly.TCPSelectorHandler.initSelector(TCPSelectorHandler.java:432)
    at com.sun.grizzly.TCPSelectorHandler.preSelect(TCPSelectorHandler.java:378)
    at com.sun.grizzly.SelectorHandlerRunner.doSelect(SelectorHandlerRunner.java:188)
    at com.sun.grizzly.SelectorHandlerRunner.run(SelectorHandlerRunner.java:132)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:722)
|#]

[#|2013-08-21T12:02:21.761+0200|INFO|glassfish3.1.2|javax.enterprise.system.core.com.sun.enterprise.v3.services.impl|_ThreadID=32;_ThreadName=Grizzly-kernel-thread(1);|Grizzly Framework 1.9.50 started in: 18ms - bound to [0.0.0.0:7676]|#]

[#|2013-08-21T12:02:21.762+0200|INFO|glassfish3.1.2|javax.enterprise.system.core.com.sun.enterprise.v3.services.impl|_ThreadID=30;_ThreadName=Grizzly-kernel-thread(1);|Grizzly Framework 1.9.50 started in: 33ms - bound to [0.0.0.0:3700]|#]

[#|2013-08-21T12:02:21.957+0200|INFO|glassfish3.1.2|javax.enterprise.system.core.com.sun.enterprise.v3.admin.adapter|_ThreadID=1;_ThreadName=main;|The Admin Console is already installed, but not yet loaded.|#]

[#|2013-08-21T12:02:22.105+0200|INFO|glassfish3.1.2|javax.enterprise.system.core.com.sun.enterprise.v3.server|_ThreadID=1;_ThreadName=main;|GlassFish Server Open Source Edition 3.1.2.2 (5) Startzeit: Felix (3.772ms), Startservices(1.766ms), gesamt(5.538ms)|#]

[#|2013-08-21T12:02:22.106+0200|SEVERE|glassfish3.1.2|javax.enterprise.system.core.com.sun.enterprise.v3.server|_ThreadID=1;_ThreadName=main;|v3 wird aufgrund einer Startausnahme heruntergefahren: Keine Berechtigung: 80=com.sun.enterprise.v3.services.impl.monitor.MonitorableSelectorHandler@6254067e|#]

[#|2013-08-21T12:02:22.199+0200|INFO|glassfish3.1.2|javax.enterprise.system.tools.admin.com.sun.enterprise.v3.admin|_ThreadID=38;_ThreadName=Thread-21;|Herunterfahren des Servers initiiert|#]

[#|2013-08-21T12:02:22.209+0200|INFO|glassfish3.1.2|javax.enterprise.system.core.com.sun.enterprise.v3.server|_ThreadID=38;_ThreadName=Thread-21;|Already stopped, so just returning|#]


Exception: java.lang.NullPointerException thrown from the UncaughtExceptionHandler in thread "Grizzly-kernel-thread(1)"

Command start-domain was not successful.

그래서 나는 이 사람과 같은 오류가 있습니다. https://www.java.net//node/693510

iptables나 포트 리디렉션을 사용하지 않고 이를 달성할 수 있는 방법이 있습니까?

답변1

루트 대신 일반 사용자로 이 서버를 실행하려고 할 수 있습니다.

~을 위한제본대부분의 운영 체제에서 1024 미만의 포트에서 수신 대기하는 TCP 수신기를 가지려면 루트 또는 이와 동등한 권한이 있어야 합니다. 이는 일반 사용자 프로그램이 알려진 서비스 포트를 점유하지 못하도록 설계된 보안 기능입니다. (이것을 호출됩니다.권한 있는 포트.)

이것이 오류 보고서의 첫 번째 줄에 "권한 거부됨"이 포함된 이유입니다.

관련 정보