2015-10-23 15 views
5

EclipseLink 2.6.1 (final) ném ngoại lệ sau đây khi triển khai một ứng dụng Java EE trên GlassFish Server 4.1. Điều này đã không xảy ra trước khi nâng cấp từ 2.6.0.java.lang.NullPointerException tại org.eclipse.persistence.platform.server.ServerPlatformUtils.createServerPlatform (ServerPlatformUtils.java)

Warning: java.lang.NullPointerException 
    at org.eclipse.persistence.platform.server.ServerPlatformUtils.createServerPlatform(ServerPlatformUtils.java:101) 
    at org.eclipse.persistence.sessions.factories.SessionManager.init(SessionManager.java:77) 
    at org.eclipse.persistence.sessions.factories.SessionManager.<clinit>(SessionManager.java:71) 
    at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.addSessionToGlobalSessionManager(EntityManagerSetupImpl.java:907) 
    at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.initSession(EntityManagerSetupImpl.java:2676) 
    at org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.deploy(EntityManagerSetupImpl.java:675) 
    at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.getAbstractSession(EntityManagerFactoryDelegate.java:205) 
    at org.eclipse.persistence.internal.jpa.EntityManagerFactoryDelegate.createEntityManagerImpl(EntityManagerFactoryDelegate.java:305) 
    at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManagerImpl(EntityManagerFactoryImpl.java:337) 
    at org.eclipse.persistence.internal.jpa.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:303) 
    at org.glassfish.persistence.jpa.JPADeployer$2.visitPUD(JPADeployer.java:451) 
    at org.glassfish.persistence.jpa.JPADeployer$PersistenceUnitDescriptorIterator.iteratePUDs(JPADeployer.java:510) 
    at org.glassfish.persistence.jpa.JPADeployer.iterateInitializedPUsAtApplicationPrepare(JPADeployer.java:492) 
    at org.glassfish.persistence.jpa.JPADeployer.event(JPADeployer.java:395) 
    at org.glassfish.kernel.event.EventsImpl.send(EventsImpl.java:131) 
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:487) 
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:219) 
    at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:491) 
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:539) 
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:535) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.security.auth.Subject.doAs(Subject.java:360) 
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:534) 
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:565) 
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:557) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.security.auth.Subject.doAs(Subject.java:360) 
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:556) 
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1464) 
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1300(CommandRunnerImpl.java:109) 
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1846) 
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1722) 
    at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:534) 
    at com.sun.enterprise.v3.admin.AdminAdapter.onMissingResource(AdminAdapter.java:224) 
    at org.glassfish.grizzly.http.server.StaticHttpHandlerBase.service(StaticHttpHandlerBase.java:189) 
    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) 

Mặc dù nó là một java.lang.NullPointerException, mức LOGWarning.

org.eclipse.persistence.sessions.factories.SessionManager#init() được định nghĩa như sau (mặc dù grepcode hiển thị RC1).

74  private static void init() { 
75   String platformClass = ServerPlatformUtils.detectServerPlatform(null); 
76   try { 
77    detectedPlatform = ServerPlatformUtils.createServerPlatform(null, platformClass, SessionManager.class.getClassLoader()); 
78   } catch (NullPointerException npe) { 
79    //some platforms may not be handling 'null' session well, 
80    //so be defensive here and only log throwable here 
81    detectedPlatform = null; 
82    LOG.logThrowable(SessionLog.WARNING, AbstractSessionLog.CONNECTION, npe); 
83   } 
84   supportPartitions = detectedPlatform != null && detectedPlatform.usesPartitions(); 
85   if (supportPartitions) { 
86    managers = new ConcurrentHashMap<String, SessionManager>(4, 0.9f, 1); 
87    SessionManager sm = initializeManager(); 
88    manager = sm; 
89    managers.put(sm.context, sm); 
90   } else { 
91    manager = initializeManager(); 
92   } 
93  } 

đâu createServerPlatform(DatabaseSession session, String platformClass, ClassLoader loader) ném một java.lang.NullPointerException, nếu platformClassnull.

97  public static ServerPlatform createServerPlatform(DatabaseSession session, String platformClass, ClassLoader loader) { 
98   if (platformClass == null) { 
99    throw new NullPointerException(); 
100  } 

      //... 
     } 

Dường như bình thường theo mã. Là nó?

+0

Bạn triển khai Eclipselink với Glassfish như thế nào? –

+0

Như thường lệ khi sử dụng một IDE, NetBeans trong trường hợp này sở hữu một người triển khai được gọi là Apache Ant (Tôi không sử dụng Apache Maven) thực hiện nhiệm vụ triển khai các ứng dụng. – Tiny

+0

Bạn biết rằng Glassfish allready thực hiện một phiên bản khác của eclipselink (tôi nghĩ 2.5.2)? Bạn đã thay đổi việc thực hiện glassfish để làm việc với 2.6.1 chưa? Nếu bạn thêm lọ vào một cuộc chiến mà bạn đang triển khai trên thủy tinh, tôi đoán có thể có xung đột phiên bản. –

Trả lời

2

Mặc dù ngoại lệ mà dường như là bình thường, nó không còn tái sản xuất trong EclipseLink 2.6.2 phát hành vào ngày 22 tháng 12 năm 2015.

Vì vậy, nếu bạn xảy ra để lo lắng về ngoại lệ đó, xem xét nâng cấp lên phiên bản EclipseLink rằng (2.6.2).

Các vấn đề liên quan