访问 JAX-WS 服务时,org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:272) 出现 java.lang.NullPointerException

2024-03-22

我在 Java EE 7 应用程序中实现 JAX-WS 服务时遇到以下异常。

Warning:   Internal Server error: /Test-war/Test.xhtml
java.lang.NullPointerException
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:272)
    at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
    at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:201)
    at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175)
    at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
    at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)
    at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
    at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561)
    at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
    at java.lang.Thread.run(Thread.java:745)

异常消息似乎非常特定于 GlassFish Server(我使用的是 4.1)。


测试场景:

CDI 托管 bean:

@Named
@ViewScoped    
public class TestManagedBean implements Serializable
{
    private String test;
    private static final long serialVersionUID=1L;

    public TestManagedBean() {}

    @PostConstruct
    private void init() {
        TestBean_Service testBean_Service=new TestBean_Service();
        TestBean testBean = testBean_Service.getTestBeanPort();
        System.out.println("testBean sum = "+testBean.getSum(5, 10));
    }

    public String getTest() {
        return test;
    }
}

成员变量test只是没用。它仅用于测试目的。

在 XHTML 页面中,只需访问此test像这样的场,

<h:outputText value="#{testManagedBean.test}"/>

这样 bean 的方法标记为@PostConstruct可以被调用。

在浏览器地址栏中输入适当的 URL 时会发生异常。


The testBean.getSum(int, int)是一个成功调用的远程 EJB 方法,当只是出于测试原因将 bean 更改为单例 EJB 时,

import client.web.services.TestBean;
import client.web.services.TestBean_Service;
import javax.annotation.PostConstruct;
import javax.ejb.Singleton;
import javax.ejb.Startup;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;

@Startup
@Singleton
@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
public class TestManagedBean
{
    public TestManagedBean() {}

    @PostConstruct
    private void init() {
        TestBean_Service testBean_Service=new TestBean_Service();
        TestBean testBean = testBean_Service.getTestBeanPort();
        System.out.println("testBean sum = "+testBean.getSum(5, 10));
    }
}

在这种情况下,代理方法getSum(int, int)它在关联的远程 EJB 中实际可用,被成功调用,并且返回通过它提供的两个参数的总和。

是什么让 GlassFish 想到java.lang.NullPointerException,当通过 XHTML 页面访问服务时?


这是 GlassFish 4.1 中的一个错误,影响grizzly-kernel服务器中的组件 - 服务 HTTP 请求的 GlassFish Grizzly 嵌入式服务器。这需要更换nucleus-grizzly-all.jar按照建议在 GlassFish 服务器 (4.1) 中添加 jar 文件 under ${glassfishHome}/glassfish/modules(不要忘记清除osgi-cache under #{glassfishHome}/glassfish/domains/yourDomain在启动/重新启动服务器之前)。

我在写这篇文章之前访问过该链接,但根据 GlassFish Server 4.1,其状态为“已解决”,这让我有了不同的想法。

请注意:几个小时前有人已经发布了相同的答案,但考虑到仅链接答案,该答案可能被受信任的用户删除。尽管事实上这是一个仅链接的答案,但在这种情况下,除了替换服务器中的新 jar 之外,没有其他方法可以解决该问题,甚至在 2014 年 11 月 19 日提出此问题后提供了 jar .希望这个答案不要被删除。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

访问 JAX-WS 服务时,org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:272) 出现 java.lang.NullPointerException 的相关文章

  • 丰富:数据表行跨度问题

    我需要创建一个 rich dataTable 甚至扩展 具有以下功能 我有一个公司类 其中包含产品对象的集合 我想展示下表 我仍然没有弄清楚如何使用子表执行此操作 在所有示例中 我发现子表具有与主表完全相同的列 据推测 我需要在前两列中使用
  • 如何在 Windows Vista 命令提示符中检查端口 8080?

    我对编程和设置 Java 服务器非常陌生 其实这是我第一次尝试 但没有成功 我即将用 Java 测试我的第一个 Web 应用程序 但是每当我在 Eclipse 中单击 以调试模式启动服务器 按钮时 我总是收到有关 Tomcat 服务器的错误
  • “纯”MVC 实现有多大用处?

    我在一家提供类似 CRM 的定制软件的公司工作 我们目前正在重新设计 重新开发该软件 希望它看起来更现代 并且更容易为未来的客户开发和定制 目前 定制每个新应用程序都需要很长时间 有一种假设是 花费这么长时间的原因是 视图 层中存在大量业务
  • Java EE7 中 Qualifier 中的 @Nonbinding 注释的目的是什么?

    我正在阅读CDIJavaEE 7 中的注入特别是使用 Qualifier and Produces注入一个custom Data type变成一颗豆子 我有以下代码取自JBoss 文档 http docs jboss org weld re
  • 如何知道 glassfish 是什么 - 完整平台或网络配置文件?

    我已经安装了glassfish 我可以跑 asadmin version 它显示了它是什么版本 但如何知道它是 完整平台 还是 Web 配置文件 你可以使用 glassfish4 bin gt asadmin list containers
  • GlassFish Server 开源版 3.0.1 中缺少“Web 服务”节点

    我在 glassfish 的管理控制台中看不到 Web 服务 节点 GF 管理控制台左侧的树状菜单中的菜单项 有没有办法在 glassfish 中启用它 我应该下载 glassfish 的任何升级才能启用它吗 简短的回答 不 不 更长的答案
  • 会话超时(session.setMaxInactiveInterval)在 Google Appengine 中不起作用

    我尝试使用以下命令为特定用户设置会话超时session setMaxInactiveInterval 30 60 30分钟 但默认情况下它被分配为 86400 秒 24 小时 也在 Web xml 中尝试过
  • 如何使用Java通过MM7发送彩信?

    请告诉我有没有办法在Java中使用MM7协议发送彩信 如果有免费的 API 来生成适当的 SOAP 消息 也请告诉我 我陷入了困境 我真的需要一种方法来做到这一点 也欢迎您提出明智的建议 预先感谢 MMS Soap 应该如下所示 3GPP
  • 如何在 Eclipse 中使用 Hibernate Tools 生成 DAO?

    我在用着 Eclipse Java EE IDE Web 开发人员 版本 Indigo 发布 使用 hibernate 工具 我对 Eclipse 中的 hibernate 很陌生 所以我学习如何配置 hibernate 并使用注释生成 P
  • 使用 application.properties 在 Spring Boot 中外部化 logback.xml 的位置

    如何使用 application properties 在 Spring Boot 中自定义 logback xml 的位置 我在下面尝试过 但不起作用 应用程序属性 logging config home dev 01 Documents
  • 在 JBoss 上热部署 - 如何让 JBoss “看到”更改?

    我正在开发一个 Java EE 应用程序 在开发过程中我会在本地 JBoss 安装上反复部署该应用程序 我想通过将应用程序直接热部署到 JBOSS server default deploy myApp 来加速构建 它似乎有效 但在硬部署和
  • java:JAXWS 2.0 不支持 Rpc/编码的 wsdls

    我正在使用 CXF 2 1 从 wsdl 生成 java 代码 但出现以下错误 WSDLToJava Error Rpc encoded wsdls are not supported in JAXWS 2 0 org apache cxf
  • 自定义 JSP 标记 - 检测其他实例的存在

    自定义 JSP 标记是否可以检测页面中是否存在其自身的其他实例 如果是这样 首选的方法是什么 我的标签的输出需要有条件地取决于它是否是唯一的实例 请注意 我的页面出现了三次标签 其中两个具有与第三个不同的属性集 因此我知道从资源池分配了两个
  • Gradle:找不到提供的方法()(组)

    为什么Gradle找不到方法provided当这是语法时指定的 https mvnrepository com artifact javax javaee api 7 0通过马文 thufir doge NetBeansProjects g
  • 在 ContainerResponseFilter 中获取响应 (JAX-RS 2)

    我正在尝试移植这个 CORS 过滤器 https raw github com ysangkok jax rs ng todo master topack WEB INF classes our package ResponseCorsFi
  • 何时使用 doGet、doPost 和 service [重复]

    这个问题在这里已经有答案了 我想知道这些 servlet 方法 我对这些方法有所了解 比如 doPost对参数数量没有限制 同时doGet has doGet比doPost doPost安全于doGet 我的问题是 因为这些方法采用相同的参
  • 如何在 Struts 2 应用程序中读取文本文件 [重复]

    这个问题在这里已经有答案了 开发 Struts 2 应用程序时遇到以下问题 我需要读取使用我的应用程序部署在 Web 服务器中的文本文件 我怎样才能知道它的相对路径来访问它 换句话说 如果我知道部署目录内的相对路径 如何找到绝对路径 当我在
  • 在没有管理控制台 GUI 的情况下配置 Glassfish

    我已经安装了 Glassfish 应用服务器 Openshift 云服务器 由于 Openshift 限制 我只能使用 8080 端口 它不允许我在 4848 端口上运行管理控制台 并且我将以某种方式从配置文件手动配置数据源 文件领域和安全
  • glassfish安装中的servlet-api.jar在哪里?

    我们正在将项目从 Sun App 服务器迁移到 Glassfish 为了进行编译 我们需要将类路径设置为 servlet 容器中的 servlet api jar 在 Glassfish 安装中的哪里可以找到这些罐子 Thanks 我猜您想
  • JAX-WS Soap 错误未出现在 WSDL 中

    我正在使用 JAX WS 创建一个 Web 服务 我正在使用 Java 到 WSDL 方法创建它 我无法让我的例外按照我的要求工作 我创建了以下异常类 WebFault public class MyWebServiceException

随机推荐