GlassFish 3.1不会从Eclipse启动

时间:2011-02-28 22:00:57

标签: eclipse glassfish-3

我使用的是Linux,而且我已经在Eclipse之外安装了GlassFish 3.1。使用asadmin start-domain就可以了。

在Eclipse Helios中,我安装了最新版本的GlassFish工具,服务器适配器等。我已经添加了一个" Server"我的外部GlassFish的实例,但是当我尝试启动它时,Eclipse控制台会说"等待domain1启动......" - 等待几分钟后,会打印出越来越多的点。最终会出现一个对话框,说明"本地主机上的Server GlassFish 3.1无法启动。"

http://localhost:8080没有任何回应。

我找不到其他错误消息。服务器日志(glassfish / domains / domain1 / server.log)打印长启动命令,然后:

Feb 28, 2011 10:48:45 PM com.sun.enterprise.admin.launcher.GFLauncherLogger info                                                                                                                                  
INFO: Successfully launched in 3 msec.

GlassFish安装完全是库存,没有加载任何应用程序。从Eclipse之外的命令行启动时,它可以正常工作。

我尝试将GlassFish重新安装到不同的位置,我重新安装了Eclipse,没有插件,除了GlassFish之外。

奇怪的是"内部GlassFish 3.1"服务器,与Eclipse插件一起发布,并且存在于eclipse / plugins中,工作得很好并且非常快速地启动。但我真的很想拥有一个外部GlassFish,我可以在需要时轻松独立于Eclipse运行。

非常感谢!

8 个答案:

答案 0 :(得分:6)

您可以详细了解正在发生的事情:

转到“窗口 - >首选项 - > Glassfish首选项”。

在那里,您可以查看“以详细模式启动Glassfish Enterprise Server”。

我也没遇到从Eclipse中启动Glassfish 3.1的问题。 我试图删除位于域目录中的“osgi-cache /”子目录,然后我可以成功启动glassfish。

希望它有所帮助。

答案 1 :(得分:4)

CLI130 Glassfish错误和使用错误中的端口4848

Glassfish是用Java编写的,如果系统的TCP / IP配置没有以某种方式设置,Glassfish会在进行getLocaHost()调用时窒息。快速解决方法是:

  1. 获取系统的主机名和相关IP
    • 主机名
    • ifconfig -a
  2. 在localhost行后面的/ etc / hosts中添加一行:

    hostname ip-address-of-hostname

  3. 更多背景.....

    如果本地主机名(从“hostname”命令返回的值)未解析为IP地址(例如“nslookup my-hostname”),Glassfish将失败。以下Java应用程序将公开此内容:

    import java.net.*;
    class Testnet {
        public static void main() throws Exception {
            InetAddress host = InetAddress.getLocalHost();
            System.out.println ("host=" + host.getHostName());
            System.out.println ("addr=" + host.getHostAddress());
        }
    }
    

    根本原因可能是许多问题中的任何一个:

    • 本地主机名(从“hostname”命令返回的值)无法解析为IP或有效IP
    • 配置错误/etc/nsswitch.conf或/ etc / hosts
    • 网上有人建议IPV6只能解决Linux中的Java问题。为了确保不会出现这种情况,可以使用以下命令在大多数版本的Linux上设置它(但是上面的Testnet应用程序为我们运行,并将bindv6only设置为1和0):

      sysctl -w net.ipv6.bindv6only = 0

    就HA而言,在/ etc / hosts中拥有本地IP和主机名的条目是一件非常可靠的事情,并确保“files”是/ etc /中“hosts”列表中的第一个条目nsswitch.conf的。这样做的缺点是每个主机都需要使用此线路进行设置,这可能会导致从DHCP获取IP或在配置时随机分配的节点出现问题。

答案 2 :(得分:1)

我遇到了同样的问题,因为我正在学习java web编程,但是在netbeans中 - windows env。我花了很多时间猜测这个错误可能意味着什么,因为日志文件没有明确说明。

最后我发现glassfish v3试图在8080端口上运行,该端口已经被reportingservicesservice.exe占用,这是sql server service。

转到(工具 - >服务器)添加一个在不同的自由端口上运行的新glassfish服务器实例 - 解决了这个问题。

答案 3 :(得分:1)

删除“osgi-cache”的建议在一台机器上工作(在工作中)。

然而,在我的家用机器上,无论是建议还是将我的机器主机名添加到“主机”文件的建议都有帮助。 Glassfish会启动,但Eclipse不会认识到......

唯一对我有用的是:

  1. 转到glassfish3 / bin目录
  2. 执行“asadmin create-domain newdomain”
    • 在此步骤中,系统提示我输入管理员用户名和密码;我分别选择了“admin”和“admin123”
  3. 在Eclipse中创建一个指向新域的Glassfish服务器
  4. 现在我知道这可能意味着默认域(domain1)有一些奇怪的配置,但这似乎不对。无论如何,这确实对我有用,现在我可以从Eclipse中启动Glassfish - 我想要的任何Glassfish域。

    HTH。

答案 4 :(得分:1)

我使用的是ubuntu 13.04并遇到了同样的问题。我尝试了几乎所有的东西,但是当我禁用IPv6时它起作用了。对于ubuntu来说,这很简单,只需在内核参数中添加以下3行:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

并运行sudo sysctl -p。祝你好运;)

P.S。不要忘记禁用代理服务器,将Active provider设置为General - > Network connections。

答案 5 :(得分:0)

坎。好消息是内部服务器正在运行。 对于外部测试,首先要测试的是服务器是否可以在Eclipse外部启动。 还要检查Eclipse已知的域目录(提示:服务器属性选项卡),以及该位置是否是您要使用的位置。 也许该域已经启动了不同的Glassfish服务器?在这种情况下,请确保首先删除此域中的osgi-cache /目录。

答案 6 :(得分:0)

如果服务器在Eclipse外部运行,请在Eclipse中检查此服务器(运行时+域)的注册数据。事实上,尝试一个新的eclipse工作区...... 这个服务器是用https保护的吗?

答案 7 :(得分:0)

我对Indigo + Glassfish 3.1插件访问已经正常工作的本地独立glassfish实例(使用用户名' admin'以及我自己的密码集)存在同样的问题。 幸运的是,对我来说做了以下几招:

  • 停止glassfish
  • 删除osgi-cache内容($ {GLASSFISH_3.1HOME} / glassfish / domains / domain1 / osgi-cache)
  • 设置我的用户名(' admin'在我的情况下)并重置passowrd(根本没有密码)

从Indigo开始的玻璃鱼现在有效!