tomee-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Romain Manni-Bucau (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (TOMEE-1013) ContextNotActiveException using TomEE embedded into Arquillian
Date Thu, 08 Aug 2013 06:32:47 GMT

    [ https://issues.apache.org/jira/browse/TOMEE-1013?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13733200#comment-13733200
] 

Romain Manni-Bucau commented on TOMEE-1013:
-------------------------------------------

Ok

in fact there are some issues in your test:
1) you inject a stateful with @EJB which doesn't make sense since this way it doesn't have
a lifecycle (using @Inject make it linked to the scope you used = @SessionScoped)
2) you stateful is bound to session so it needs a request and with tomee embedded you don't
have it. The easier way to get it working it do execute the test as a client using a "test
servlet" or whatever you want which forces you to do a http request to let the server create
a session

It works in standalone tomee because you do a request and in tomee-remote because a request
is done implicitely to execute the test
                
> ContextNotActiveException using TomEE embedded into Arquillian
> --------------------------------------------------------------
>
>                 Key: TOMEE-1013
>                 URL: https://issues.apache.org/jira/browse/TOMEE-1013
>             Project: TomEE
>          Issue Type: Bug
>          Components: TomEE Arquillian Adapters
>    Affects Versions: 1.5.2
>         Environment: Mac OS, Java 1.7.0_10
>            Reporter: Luca Masini
>         Attachments: testcase-cdi-stateful.zip
>
>
> You cannot use a transactional event listener from a Stateful EJB to a business method
of the same bean:
> @Stateful
> public class MySFEJB {
> ....
>     public void sender() {
>         transactionListener.fire(new Payload());
>     }
>     public void receiver(@Observes(during = TransactionPhase.AFTER_SUCCESS) Payload payload)
{
> // code omitted
>     }
> into the log you can read:
> INFO: Cannot send event to bean in non-active context : [ExtendedEntityManagerService,
Name:null, WebBeans Type:ENTERPRISE, API Types:[java.io.Serializable,java.lang.Object,net.lucamasini.synch.mobile.boundary.ExtendedEntityManagerService],
Qualifiers:[javax.enterprise.inject.Any,javax.enterprise.inject.Default]]
> then inside the container this Exception is raised (BeanManagerImpl.java:351):
>             throw new ContextNotActiveException("WebBeans context with scope type annotation
@"
>                                                 + scopeType.getSimpleName() + " does
not exist within current thread");
> Everything works fine using the same code inside TomEE as a normal container and not
for Integration Tests.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message