java.lang.IllegalArgumentException: renifleurs avec le type [ejb] et le type [appclient] ne doit pas réclamer l'archive en même temps

StackOverflow https://stackoverflow.com/questions/4106996

Question

Environnement : GlassFish 3.0.1, NetBeans 6.9, 6u21 JDK

En outre testé avec GlassFish 3.0.1, NetBeans 6.9.1, 6u22 JDK, mais les résultats sont les mêmes.

Problème :. Impossible d'exécuter l'application client dans une application d'entreprise (app-client, ejb, guerre)

Le pot EJB a Local uniquement interfaces et ne contient pas des méthodes principales.

GlassFish message

SEVERE: Exception while deploying the app
java.lang.IllegalArgumentException: Sniffers with type [ejb] and type [appclient] should not claim the archive at the same time. Please check the packaging of your archive [C:\Users\myUser\.netbeans\6.9\config\GF3\domain1\applications\fabench-app-client]
    at com.sun.enterprise.v3.server.SnifferManagerImpl.validateSniffers(SnifferManagerImpl.java:221)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.setupContainerInfos(ApplicationLifecycle.java:426)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:262)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:183)
    at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:272)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:305)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:320)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1176)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$900(CommandRunnerImpl.java:83)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1235)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1224)
    at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:365)
    at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:204)
    at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:166)
    at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:100)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:245)
    at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
    at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
    at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
    at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
    at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
    at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
    at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
    at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
    at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
    at java.lang.Thread.run(Thread.java:619)

NetBeans message de marche

Building jar: F:\NetBeansProjects\fabench\fabench-app-client\dist\fabench-app-client.jar
dist:
pre-run-deploy:
Distributing F:\NetBeansProjects\fabench\fabench-app-client\dist\fabench-app-client.jar to [GlassFish Server 3]
deploy?path=F:\NetBeansProjects\fabench\fabench-app-client\dist\fabench-app-client.jar&name=fabench-app-client&force=true failed on GlassFish Server 3
F:\NetBeansProjects\fabench\fabench-app-client\nbproject\build-impl.xml:716: The module has not been deployed.
BUILD FAILED (total time: 0 seconds)

application client.xml

Ce ne contient que la balise <display-name> remplie, mais <ejb-ref> peut également être spécifiée avec une interface <remote>. Il n'y a pas de balise de <local>, donc je suppose que app-client est seulement capable de travailler avec les interfaces distantes. Est-ce vrai?

Quel pourrait être le problème ici?

Toute aide ou des idées serait appréciée! Merci d'avance, roulettes

Était-ce utile?

La solution 2

  • App-client accède à distance via des interfaces EJB
  • Depuis GlassFish v3, les interfaces à distance doit être emballé dans une bibliothèque de classes Java, si les interfaces sont distribuables.
  • App-client doit être à l'intérieur d'un EAR d'application d'entreprise (mais pas strictement le même oreille.C'est avec EJB et WAR).

Le tutoriel sous http://netbeans.org/kb/docs/javaee/ entappclient.html explique comment créer un app-client, mais il ne fonctionne pas pour moi; il y a aussi une question pour cette question: Impossible d'exécuter l'application client qui accède à un EJB sur GlassFish v3 .

Autres conseils

Pas un expert Glassfish, mais il semble que le pot est vu à la fois comme un pot de ejb et un pot de client d'application. Si tel est le cas, ce n'est pas une application valide. La première chose que je vérifierais est d'assurer votre pot de client d'application ne pas ont soit:

  1. Un META-INF / ejb-jar.xml
  2. Toutes les classes annotées avec @Stateless, @Singleton, @Stateful ou @MessageDriven

Sur l'autre question, à droite, les clients d'application sont les clients distants et, par définition, ne peuvent pas parler aux haricots en utilisant leur interface @Local.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top