我有一个正在使用Java 6 + Glassfish 3的应用程序。我正在将该项目迁移为在使用Oracle Java 8的Glassfish 5.1上运行。
该应用程序的构建没有问题。部署期间,唯一与jpa / eclipselink相关的行是
var brojleta = 1;
const mappedarray = Object.entries(data).filter((k,v)=>{return k[0] == "let"+brojleta});
console.log(mappedarray[0][1][0]);
但是,当执行语音呼叫时,会触发Info: EclipseLink, version: Eclipse Persistence Services - 2.7.4.v20190115-ad5b7c6b2a
Info: /file:/home/eelke/NetBeansProjects/MplusLicentieService/build/web/WEB-INF/classes/_MplusLicentieServicePU login successful
。我已经通过调试器验证了null指针实际上是持久性单元。这是Web服务,EntitiyManager和失败的方法之一的定义。在方法NullPointerException
中。省略其他语句和变量。
em == null
我还尝试在netbeans中重新定义持久性单元,但这并没有改变任何东西。
一些其他发现
在同一项目中还有一个无状态EJB,它具有由计时器调度程序调用的功能。使用@Inject向该EJB中注入第二个无状态EJB,这是可行的。将与Web服务中相同的持久性上下文注入到第二个EJB中。这样可以正常工作,注入它并按预期执行查询。
找到了一些可能相关的日志行
信息:找到了JAX-WS RI特定的描述符(WEB-INF / sun-jaxws.xml) 在存档网站中,从而部署了Enterprise Web Service(109) 已禁用此归档文件,以避免重复服务。