簡體   English   中英

將glassfish 2.1遷移到4.0后找不到零EJB和類

[英]Zero EJB and class not found after migrate glassfish 2.1 to 4.0

我在使用SOAP Web服務遷移EJB時遇到了麻煩,並將JARS從Glassfish 2.1遷移到了Glassfish 4.0。 同時,我將操作系統(XP-> Windows 7)和netbeans版本7.3更改為7.4。 Glassfish 4.0是具有2個實例的群集。

我使用源創建了新軟件包。 用過的罐子包含在庫中(如GF 2.0)。 EJB可以很好地構建,但是在部署時會出現這些錯誤。

[2014-05-07T11:05:36.974+0200] [glassfish 4.0] [SEVERE] [] [global] [tid: _ThreadID=208 _ThreadName=admin-listener(13)] [timeMillis: 1399453536974] [levelValue: 1000] [[
Class [ nl/amnesty/sys/webform/entity/Form ] not found. Error while loading [ class nl.amnesty.webservice.form.FormExternal ]]]
[2014-05-07T11:05:36.975+0200] [glassfish 4.0] [SEVERE] [] [javax.enterprise.system.core] [tid: _ThreadID=208 _ThreadName=admin-listener(13)] [timeMillis: 1399453536975] [levelValue: 1000] [[
  Exception while deploying the app [CRMWebserviceForm]]]
[2014-05-07T11:05:36.976+0200] [glassfish 4.0] [SEVERE] [NCLS-CORE-00026] [javax.enterprise.system.core] [tid: _ThreadID=208 _ThreadName=admin-listener(13)] [timeMillis: 1399453536976] [levelValue: 1000] [[
  Exception during lifecycle processing
java.lang.IllegalArgumentException: Invalid ejb jar CRMWebserviceForm: it contains zero ejb. A valid ejb jar requires at least one session/entity/message driven bean.
    at org.glassfish.ejb.deployment.util.EjbBundleValidator.accept(EjbBundleValidator.java:147)
    at org.glassfish.ejb.deployment.util.EjbBundleValidator.accept(EjbBundleValidator.java:112)
    at com.sun.enterprise.deployment.BundleDescriptor.visit(BundleDescriptor.java:621)
    at org.glassfish.ejb.deployment.descriptor.EjbBundleDescriptorImpl.visit(EjbBundleDescriptorImpl.java:757)
    at com.sun.enterprise.deployment.util.ApplicationValidator.accept(ApplicationValidator.java:116)
    at com.sun.enterprise.deployment.BundleDescriptor.visit(BundleDescriptor.java:621)
    at com.sun.enterprise.deployment.archivist.ApplicationFactory.openArchive(ApplicationFactory.java:190)
    at org.glassfish.javaee.core.deployment.DolProvider.processDOL(DolProvider.java:198)
    at org.glassfish.javaee.core.deployment.DolProvider.load(DolProvider.java:222)
    at org.glassfish.javaee.core.deployment.DolProvider.load(DolProvider.java:96)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.loadDeployer(ApplicationLifecycle.java:878)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.setupContainerInfos(ApplicationLifecycle.java:818)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:374)
    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:527)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:523)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:356)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:522)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:546)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1423)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1500(CommandRunnerImpl.java:108)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1762)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1674)
    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.StaticHttpHandler.service(StaticHttpHandler.java:297)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:246)
    at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191)
    at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168)
    at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189)
    at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)
    at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
    at org.glassfish.grizzly.portunif.PUFilter.handleRead(PUFilter.java:231)
    at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)
    at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
    at org.glassfish.grizzly.portunif.PUFilter.handleRead(PUFilter.java:231)
    at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)
    at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)
    at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
    at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838)
    at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55)
    at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564)
    at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544)
    at java.lang.Thread.run(Thread.java:724)
]]

[2014-05-07T11:05:36.979+0200] [glassfish 4.0] [SEVERE] [] [javax.enterprise.system.core] [tid: _ThreadID=208 _ThreadName=admin-listener(13)] [timeMillis: 1399453536979] [levelValue: 1000] [[

 Exception while deploying the app [CRMWebserviceForm] : Invalid ejb jar CRMWebserviceForm: it contains zero ejb. A valid ejb jar requires at least one session/entity/message driven bean.]]

EJB的一部分:

import javax.ejb.Stateless;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;



@WebService
@Stateless
public class FormExternal {


    @WebMethod(operationName = "submitform")
    public long submitform(@WebParam(name = "form") Form form) {

    CRMWebformController.processForm(form);
    return form.getSubmissionid();
    }
}

這里有一些關於jar庫如何包含的信息。

- CRMWebserviceForm
  + Source packages
  + Test packages
    - Libraries
      - NLAmestyCRM - dist/NLAmnestyCRM.jar
      - ...
      - NLAmnestyWEBFORM - dist/NLAmnestyWEBFORM.jar
      + JDK 1.7 (default)
      + Cluster (glassfish)

在EJB屬性(庫)中,選擇它們在運行時是必需的。 我后來添加的“錯誤”庫文件夾。 它是。\\ lib \\ nblibraries.properties,沒有任何區別。 更准確地說,我通過單擊“瀏覽”在EJB屬性“庫文件夾”中添加了該值,但未向該文件夾添加任何內容。

選擇了打包選項“ EJB jar中需要打包JARS”。

運行:Java EE版本是Java EE5。 那與平台JDK 1.7兼容嗎?

任何幫助表示贊賞。

[編輯:添加了一些代碼] [編輯:添加了庫信息]

問題是相關的。 因為找不到類nl.amnesty.sys.webform.entity.Form ,所以無法加載使用該類的EJB,因此您得到以下消息:

java.lang.IllegalArgumentException: Invalid ejb jar CRMWebserviceForm: it contains
 zero ejb. A valid ejb jar requires at least one session/entity/message driven bean.

您必須確保該類與Web應用程序一起打包或在GlassFish安裝的lib文件夾中可用,以便服務器可以加載該類。

我不知道您是如何打包應用程序的,但是如果無法使其正常運行,也許有關此的一些信息會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM