当我尝试访问管理控制台时
http://localhost:4848
它说管理控制台正在加载,但不会更进一步。如果我按照建议刷新页面,我会收到 HTTP 404。
Stack Overflow 上还有其他几个类似问题的已回答问题,但没有一个答案有帮助。所以我将全局日志级别设置为 FINEST 并查看了 server.log。
我得到的第一个也是最突出的例外是:
[#|2013-05-07T11:04:52.187+0200|FINE|glassfish3.1.2|com.sun.enterprise.v3.admin.adapter.AdminConsoleAdapter|_ThreadID=81;_ThreadName=Thread-2;ClassName=com.sun.enterprise.v3.admin.adapter.AdminConsoleAdapter;MethodName=initRest;|java.io.IOException: Server returned HTTP response code: 401 for URL: http://0.0.0.0:4848/management/domain
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1625)
at com.sun.enterprise.v3.admin.adapter.AdminConsoleAdapter.initRest(AdminConsoleAdapter.java:557)
at com.sun.enterprise.v3.admin.adapter.AdminConsoleAdapter$1.run(AdminConsoleAdapter.java:372)
(这里是从启动 glassfish 到访问 admin-console 的完整日志)
这发生在我的开发机器(Windows XP)上。尝试了几次重新安装到不同的位置。我的 JVM 来自 JDK 7u21。
这不会发生在我的其他具有类似配置的开发机器(Ubuntu 13.04)上。主要区别 - 除了操作系统 - 是代理配置。它设置为所有协议的代理,端口 8080,localhost 除外。
我自己真的没有答案...
编辑
额外的奇怪行为。有时(每次重新启动 glassfish),可以通过以下方式访问登录管理控制台
http://127.0.0.1:4848/j_security_check
然后我可以登录并在那里编辑任何设置。当我注销时,我得到一个 HTTP 500:
javax.servlet.ServletException: java.lang.reflect.InvocationTargetException while attempting to process a 'beforeCreate' event for 'sun_html53'.
root cause
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException while attempting to process a 'beforeCreate' event for 'sun_html53'.
root cause
java.lang.reflect.InvocationTargetException
root cause
java.lang.IllegalStateException: REST Server Name not set!
之后,我无法再通过上述技巧登录,直到重新启动 glassfish。
也可以通过
http://localhost:4848/login.jsf
是可能的,但是我可能不会更改任何值,而是直接得到一个与上面相同的日志错误。