[JBoss JIRA] Created: (EJBTHREE-983) @EJB injection fails, RuntimeException, IllegalArgumentException
by dpocock (JIRA)
@EJB injection fails, RuntimeException, IllegalArgumentException
----------------------------------------------------------------
Key: EJBTHREE-983
URL: http://jira.jboss.com/jira/browse/EJBTHREE-983
Project: EJB 3.0
Issue Type: Bug
Components: EJB3 Extensions
Affects Versions: AS 4.2.0 GA, EJB 3.0 RC9 - Patch 1
Environment: Debian Linux, Sun Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_12-b04)
Reporter: dpocock
Similar to bug EJBTHREE-862. However, setting `Isolated' to false in $JBOSS_HOME/server/XXX/deploy/ear-deployer.xml does not resolve the issue for me.
Here is the scenario:
There are two applications, app1.ear and app2.ear.
app1.ear contains a stateless session bean, App1Bean, with local and remote interface
app2.ear contains a stateless session bean, App2Bean, which has a field defined like so:
@EJB(mappedName="app1/App1Bean/local") // I've tried local and remote
com.app1.ejb.session.App1 app1;
app1.ear and app2.ear are loaded successfully by the application server.
When App2Bean is activated, JBoss tries to perform the injections. At this point, the RuntimeException (see stack below) occurs.
App2Bean can successfully obtain a reference to app1 bean using the traditional JNDI lookup methods. This is a workaround.
When inspecting the stack, notice the presence of IllegalArgumentException, even though the interface matches.
16:22:12,155 ERROR [STDERR] java.lang.RuntimeException: Non matching type for inject of field: App1Bean app1 for type: $Proxy79 of jndiName env/App2Bean/app2
intfs: , App1, org.jboss.ejb3.JBossProxy, javax.ejb.EJBObject
16:22:12,155 ERROR [STDERR] at org.jboss.injection.JndiFieldInjector.inject(JndiFieldInjector.java:135)
16:22:12,155 ERROR [STDERR] at org.jboss.injection.JndiFieldInjector.inject(JndiFieldInjector.java:104)
16:22:12,155 ERROR [STDERR] at org.jboss.injection.JndiFieldInjector.inject(JndiFieldInjector.java:61)
16:22:12,155 ERROR [STDERR] at org.jboss.ejb3.AbstractPool.create(AbstractPool.java:92)
16:22:12,155 ERROR [STDERR] at org.jboss.ejb3.ThreadlocalPool.get(ThreadlocalPool.java:48)
16:22:12,165 ERROR [STDERR] at org.jboss.ejb3.cache.simple.SimpleStatefulCache.create(SimpleStatefulCache.java:209)
16:22:12,165 ERROR [STDERR] at org.jboss.ejb3.stateful.StatefulContainer.dynamicInvoke(StatefulContainer.java:303)
16:22:12,165 ERROR [STDERR] at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:106)
16:22:12,165 ERROR [STDERR] at org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82)
16:22:12,175 ERROR [STDERR] at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:828)
16:22:12,175 ERROR [STDERR] at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:681)
16:22:12,175 ERROR [STDERR] at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:358)
16:22:12,175 ERROR [STDERR] at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:412)
16:22:12,175 ERROR [STDERR] at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:239)
16:22:12,185 ERROR [STDERR] Caused by: java.lang.IllegalArgumentException
16:22:12,185 ERROR [STDERR] at sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:63)
16:22:12,185 ERROR [STDERR] at java.lang.reflect.Field.set(Field.java:656)
16:22:12,185 ERROR [STDERR] at org.jboss.injection.JndiFieldInjector.inject(JndiFieldInjector.java:119)
16:22:12,185 ERROR [STDERR] ... 13 more
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 2 months
[JBoss JIRA] Created: (JBAS-4435) WebAppClassLoader.getResource() fails when the war is deployed as part of an ear
by Thomas Diesler (JIRA)
WebAppClassLoader.getResource() fails when the war is deployed as part of an ear
--------------------------------------------------------------------------------
Key: JBAS-4435
URL: http://jira.jboss.com/jira/browse/JBAS-4435
Project: JBoss Application Server
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: ClassLoading
Reporter: Thomas Diesler
Assigned To: Scott M Stark
For some reason WebAppClassLoader.getResource("WEB-INF/wsdl/TestEndpoint.wsdl")
fails when the war is deployed as part of an ear deployment.
I use this workaround in
static class VirtualFileClassLoader extends ClassLoader
{
private UnifiedVirtualFile vFile;
public VirtualFileClassLoader(UnifiedVirtualFile file, ClassLoader parent)
{
super(parent);
vFile = file;
}
@Override
public URL getResource(String name)
{
URL url = super.getResource(name);
if (url == null)
{
try
{
url = vFile.findChild(name).toURL();
}
catch (IOException e)
{
// ignore
}
}
return url;
}
}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 3 months
[JBoss JIRA] Created: (EJBTHREE-913) java.lang.IllegalStateException in SessionContext::getCallerPrincipal()
by Mihail Druzinin (JIRA)
java.lang.IllegalStateException in SessionContext::getCallerPrincipal()
-----------------------------------------------------------------------
Key: EJBTHREE-913
URL: http://jira.jboss.com/jira/browse/EJBTHREE-913
Project: EJB 3.0
Issue Type: Bug
Components: Security
Affects Versions: EJB 3.0 RC9 - FD
Environment: AS: jboss-4.0.5 (ejb3 Version EJB 3.0 RC7 - FD and EJB3 RC9 Patch 1)
OS: Windows, GentooLinux
Reporter: Mihail Druzinin
>From HttpServlet I execute methods from stateless been.
All methods executed correctly with authorization.
When in method I try sessionContext.getCallerPrincipal(), then throws
java.lang.IllegalStateException: No valid security context for the caller identity
After see in jboss security module I find that in org.jboss.security.SecurityAssociation getCallerPrincipal()
when used RunAsIdentity, it getted not from top of RunAsIdentity stack, but "for the active run-as the previous caller has assumed":
Principal thePrincipal = peekRunAsIdentity(1); (SecurityAssociation.java:216).
After fixed that string to: Principal thePrincipal = peekRunAsIdentity(0), all start work.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
14 years, 3 months