[Design of EJB 3.0] - Re: @RemoteBindings and clientBindUrl - JNDI binding questio
by ALRubinger
"wolfc" wrote : 2. The relationship between remote business interfaces and remote bindings is as of yet not properly specified.
True statement.
"wolfc" wrote : The goal is to give the bean developer the ability to specify a client bind url per remote business interface
Did you make that up just now? Where is this defined? :) Kinda goes against the idea of @RemoteBinding(s) at the class-level.
Historically, we've only made available one type of Proxy in JNDI (for each local and remote), which supported EJB2.x Interfaces, EJB2.x Home Interfaces, and EJB3 Business Interfaces. Now we have:
* Eliminated the binding of EJB2.x Proxies entirely (they may only be obtained via Home.create())
* An EJB3.0 Business Default Business Proxy (the most widely-used client lookup target, which supports each of the business interfaces bound)
* An EJB3.0 Business Interface-Specific Proxy (one per bound business interface, these are used as injection/ENC lookup targets and are loaded with the stuff that gives getInvokedBusinessInterface() contextual information).
* An EJB2.x Home Proxy, which may be bound to the same Proxy as the EJB3 Default Business Interface.
So I read many @RemoteBindings as targeted to expose any N number of bindings for the Default Business Interface Proxy.
So if we have:
@RemoteBinding(jndiBinding="Busi1")
| public interface MyBusinessInterface1{...}
|
| @RemoteBinding(jndiBinding="Busi2")
| public interface MyBusinessInterface2{...}
|
| public interface MyBusinessInterface3{...}
|
| @Stateless
| @RemoteBindings({
| @RemoteBinding(jndiBinding="MyBean")
| @RemoteBinding(jndiBinding="MySSLBean", clientBindUrl="sslsocket://0.0.0.0:3843")
| })
| public class MyBean implements MyBusinessInterface1, MyBusinessInterface2, MyBusinessInterface3{...}
..then we've defined @RemoteBindings at both the interface and EJB level. As a user I'd expect to find in the JNDI Tree:
+ Busi1 (Proxy implements MyBusinessInterface1)
| + Busi2 (Proxy implements MyBusinessInterface2)
| + MyBean (Proxy implements MyBusinessInterface1, MyBusinessInterface2, MyBusinessInterface3)
| + MySSLBean ((Proxy implements MyBusinessInterface1, MyBusinessInterface2, MyBusinessInterface3) < Exposes SSL Transport
This way, an interface-targeted JNDI Binding is specified at the interface level, and any @RemoteBinding(s) on the class level apply to all Remote Business Interfaces. And it'd require no API changes.
S,
ALR
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4167201#4167201
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4167201
17 years, 8 months
[Design the new POJO MicroContainer] - Re: JBoss with spaces in the directory name
by mstruk
anonymous wrote : Read the first post, I already fixed it, but it is not in a released version of common-core.
| https://jira.jboss.org/jira/browse/JBCOMMON-60
|
I totally missed this one :)
anonymous wrote : Can you try building this yourself and copying it to $JBOSS_HOME/lib
| to validate all the fixes work.
| http://anonsvn.jboss.org/repos/common/common-core/trunk/
I did that, and it works much better, but I'm seeing something else now:
| 19:45:30,399 WARN [HDScanner] Scan failed
| java.net.URISyntaxException: Illegal character in path at index 61: file:/C:/Users/Devel/svnroot/jboss-5/build/output/jboss 5.0.0.CR2/server/default/deploy/jboss-local-jdbc.rar
| at java.net.URI$Parser.fail(URI.java:2809)
| at java.net.URI$Parser.checkChars(URI.java:2982)
| at java.net.URI$Parser.parseHierarchical(URI.java:3066)
| at java.net.URI$Parser.parse(URI.java:3014)
| at java.net.URI.<init>(URI.java:578)
| at java.net.URL.toURI(URL.java:918)
| at org.jboss.system.server.profile.basic.MetaDataAwareProfile.hasBeenModified(MetaDataAwareProfile.java:74)
| at org.jboss.system.server.profile.basic.ProfileImpl.getModifiedDeployments(ProfileImpl.java:317)
| at org.jboss.system.server.profileservice.hotdeploy.HDScanner.scan(HDScanner.java:260)
| at org.jboss.system.server.profileservice.hotdeploy.HDScanner.run(HDScanner.java:221)
| at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
| at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317)
| at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
| at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
| at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
| at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
| at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
| at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
| at java.lang.Thread.run(Thread.java:619)
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4167143#4167143
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4167143
17 years, 8 months