Glassfish 3.1 Eclipse中的CREDENTIAL_ERROR

sti*_*vlo 8 java eclipse glassfish-3

我无法使用Windows 7上的"Oracle Glassfish服务器工具"插件在Eclipse Indigo上启动Glassfish 3.1.安装插件后,我在服务器视图中选择了"新建" - >"服务器"并单击了GlassFish 3.1并下载了通过Eclipse安装.

每次我尝试启动它时,我都会收到以下消息:

The Eclipse plugin cannot communicate with the GlassFish server, 
status is :CREDENTIAL_ERROR
Run Code Online (Sandbox Code Playgroud)

我发现初始密码是'changeit',我在命令行上将其更改为我自己的密码:

bin/asadmin change-master-password  domain1
Enter the current master password>
Enter the new master password>
Enter the new master password again>
Command change-master-password executed successfully.
Run Code Online (Sandbox Code Playgroud)

我已经在Eclipse的GlasshFish 3.1配置屏幕中相应地在Application Server(管理员密码)部分对其进行了更改.

列出的端口(8080,4488)似乎与domain.xml配置兼容:

<network-listeners>
    <network-listener port="8080" protocol="http-listener-1" transport="tcp" name="http-listener-1" thread-pool="http-thread-pool"></network-listener>
    <network-listener port="8181" 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>
Run Code Online (Sandbox Code Playgroud)

但是,在我的.log中,我发现以下内容:

!ENTRY oracle.eclipse.tools.glassfish 4 1 2011-08-04 11:38:43.925
!MESSAGE GlassFish: error 
!STACK 0
java.net.ConnectException: Connection refused: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
    at java.net.Socket.connect(Socket.java:525)
    at java.net.Socket.connect(Socket.java:475)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:163)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:394)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:529)
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:233)
    at sun.net.www.http.HttpClient.New(HttpClient.java:306)
    at sun.net.www.http.HttpClient.New(HttpClient.java:323)
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:860)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:801)
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:726)
    at com.sun.enterprise.jst.server.sunappsrv.commands.CommandRunner.call(CommandRunner.java:607)
    at com.sun.enterprise.jst.server.sunappsrv.commands.CommandRunner.call(CommandRunner.java:1)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:619)

!ENTRY oracle.eclipse.tools.glassfish 4 150 2011-08-04 11:38:43.928
!MESSAGE The Eclipse plugin cannot communicate with the GlassFish server, status is :CREDENTIAL_ERROR
!STACK 0
java.lang.RuntimeException: The Eclipse plugin cannot communicate with the GlassFish server.Status is :CREDENTIAL_ERROR
    at com.sun.enterprise.jst.server.sunappsrv.SunAppServerLaunch.launch(SunAppServerLaunch.java:163)
    at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:854)
    at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:703)
    at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:696)
    at org.eclipse.wst.server.core.internal.Server.startImpl2(Server.java:3404)
    at org.eclipse.wst.server.core.internal.Server.startImpl(Server.java:3342)
    at org.eclipse.wst.server.core.internal.Server$StartJob.run(Server.java:363)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
Run Code Online (Sandbox Code Playgroud)

因此,根据我的理解,界面中显示的错误消息似乎是误导性的,应该是连接问题,而不是密码问题.谁知道如何解决这个问题?

小智 8

我得到了" Eclipse插件无法与GlassFish服务器通信,状态为:CREDENTIAL_ERROR "错误.

我通过确保没有其他进程正在侦听端口8080 来找到我的问题的解决方案.
要查找侦听端口8080的进程,请打开命令提示符并键入以下内容:

netstat -a -n -o | find "8080"
Run Code Online (Sandbox Code Playgroud)
  1. 在最右边的列中,您将看到进程标识符.
  2. 打开Windows任务管理器(按ctrl + alt + delete并选择"启动任务管理器")并转到进程选项卡.
  3. 查找名为"PID"的列(如果它不存在已经进入查看 - >选择列... - >检查PID)并找到使用您找到的PID的过程netstat.
    - >杀死进程 - >再试一次.

它对我有用.


sti*_*vlo 1

禁用 ZoneAlarm 防火墙后,我可以在 Windows 上成功启动 GlassFish。然而,随后我开始遇到许多不相关且烦人的问题,按照 Mico 的建议,我改回使用 Linux,这是我常用的开发平台,一切都很顺利。

记录该过程:

  1. 对于 Eclipse Indigo,默认情况下不存在 GlassFish 连接器。在 WTP 的服务器选项卡中,右键单击并选择新建 -> 服务器,然后单击链接“下载其他服务器适配器”,选择 GlassFish 并按下一步,接受许可证并完成。

  2. 这次我自己从http://glassfish.java.net/下载了GlassFish ,并选择了.sh文件风格的Unix全平台开源版本。

  3. 在命令行上,我将存档移到了我想要安装的父文件夹中,并命名为“sh glassfish-3.1.1-unix.sh”,这会显示图形配置。我选择典型配置。

  4. 如果您选择自动升级选项,请准备等待几分钟。这是自 3.0.1 以来的一个已知错误,似乎他们更喜欢记录它,而不是修复它。无需按照建议取消安装,只需喝杯咖啡或阅读一些新闻,它就会完成。

  5. 安装 GlassFish 后,在 Eclipse 服务器选项卡中,选择“新建”->“服务器”,然后选择“GlassFish”->“GlassFish Server Open Source Edition 4 (Java EE 6)”,浏览 Glassfish 的 domain1 目录,将管理员密码留空。

现在就可以在 Glassfish 上部署项目了,就像我以前在 Tomcat 中所做的那样。根据我第一天的经验,热重新部署是一种工作,但并非总是如此,很多时候服务器停止+启动是必要的。