glassfish 3.1虚拟服务器噩梦

时间:2011-07-09 09:30:24

标签: java-ee servlets glassfish-3

我正在使用glassfish 3.1.1(3.1版(build 43))服务器。我已经部署了一个名为“void”的Web应用程序 现在我已经在我编写的主机中创建了一个虚拟服务器

${com.sun.aas.hostName},pradyut.dyndns.org

在我选择的网络听众中

http-listener-1

在默认网络模块中,我选择了名为“void”的网络应用

现在有两个问题:

1)每当我重新启动服务器时,http-sevice-1都会脱机,并且每次请求都会转储堆栈跟踪: -

    SEVERE: PWC3989: An exception or error occurred in the container during the request processing
java.lang.ClassCastException: com.sun.grizzly.config.ContextRootInfo cannot be cast to org.apache.catalina.Context
at org.apache.catalina.connector.CoyoteAdapter.postParseRequest(CoyoteAdapter.java:515)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:267)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:227)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:170)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:822)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:719)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1013)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
at java.lang.Thread.run(Thread.java:619)

解决方案是

1)取消部署应用程序无效。

2)重启服务器。

3)部署申请无效

没有聚类的glassfish 3.0中没有这个问题(我记得)。

第二个问题是每当我创建一个虚拟服务器时,我都会收到错误:

    INFO: webContainer.virtual-server.loadedDefaultWebModule
SEVERE: WEB0163: Exception processing HttpService configuration change
org.apache.catalina.LifecycleException: java.lang.Exception: No context matching /void deployed on virtual server void
at com.sun.enterprise.web.WebContainer.updateDefaultWebModule(WebContainer.java:2034)
at com.sun.enterprise.web.WebContainer.updateHost(WebContainer.java:2916)
at com.sun.enterprise.web.WebContainer.updateHttpService(WebContainer.java:3047)
at com.sun.enterprise.web.reconfig.WebConfigListener$1.changed(WebConfigListener.java:159)
at org.jvnet.hk2.config.ConfigSupport.sortAndDispatch(ConfigSupport.java:332)
at com.sun.enterprise.web.reconfig.WebConfigListener.changed(WebConfigListener.java:114)
at org.jvnet.hk2.config.Transactions$ConfigListenerJob.process(Transactions.java:379)
at org.jvnet.hk2.config.Transactions$ConfigListenerJob.process(Transactions.java:369)
at org.jvnet.hk2.config.Transactions$ConfigListenerNotifier$1$1.call(Transactions.java:259)
at org.jvnet.hk2.config.Transactions$ConfigListenerNotifier$1$1.call(Transactions.java:257)
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)
Caused by: java.lang.Exception: No context matching /void deployed on virtual server void
at com.sun.grizzly.util.http.mapper.Mapper.addDefaultContext(Mapper.java:795)
at com.sun.grizzly.util.http.mapper.Mapper.setDefaultContextPath(Mapper.java:759)
at com.sun.enterprise.web.WebContainer.updateDefaultWebModule(WebContainer.java:2026)
... 14 more

我还没有解决虚拟服务器的噩梦。 如果无法复制上述错误,请从OS任务管理器结束服务器进程。 然后开始尝试。

BTW如何在玻璃鱼中发票? glassfish bugzilla在哪里?

1 个答案:

答案 0 :(得分:2)

我在使用Glassfish 3.1.2.2时遇到了同样的问题,在花了更多的时间来修复它之后,我认为我有一个解决方案。

我创建了8个虚拟服务器,并尝试一次在每个虚拟服务器上设置默认Web模块,确保将应用程序设置为在编辑应用程序页面中的所选虚拟服务器上运行(使用4848上的管理控制台)。它适用于字母表中“服务器”之前的每个虚拟服务器,而不是字母表中“服务器”之后的任何虚拟服务器。在这种情况下,标准虚拟服务器“server”被设置为http-listener默认虚拟服务器。

我将http-listener的默认虚拟服务器设置为我命名为“zzz”的新虚拟服务器,现在我似乎能够为其他虚拟服务器设置默认Web模块而不会发生此错误(同样,检查应用程序配置设置正确。)

在我的domain.xml文件中,虚拟服务器按添加的顺序列出,这对问题没有影响。我认为可以说这是一个错误,而不是配置错误。

我希望我已经解释得很好,因为我刚刚开始尝试了解服务器/玻璃鱼的工作原理。