In EJB 3.1, I can create a no-interface session bean. When this is injected into other classes, they receive an object that has the same type as my pojo, and yet what they actually get is a stub that by a chain of classes interacts with my pojo. How is this trick pulled off? I could understand if the stub had the same interface type as my pojo, but how does the container create an object of the same type? Reflection? Bit-weaving? Many thanks!
In EJB 3.1, how technically does the container proxy and effectively spoof my no-interface object?
358 Views Asked by user384842 At
1
There are 1 best solutions below
Related Questions in JAVA
- Add image to JCheckBoxMenuItem
- How to access invisible Unordered List element with Selenium WebDriver using Java
- Inheritance in Java, apparent type vs actual type
- Java catch the ball Game
- Access objects variable & method by name
- GridBagLayout is displaying JTextField and JTextArea as short, vertical lines
- Perform a task each interval
- Compound classes stored in an array are not accessible in selenium java
- How to avoid concurrent access to a resource?
- Why does processing goes slower on implementing try catch block in java?
- Redirect inside java interceptor
- Push toolbar content below statusbar
- Animation in Java on top of JPanel
- JPA - How to query with a LIKE operator in combination with an AttributeConverter
- Java Assign a Value to an array cell
Related Questions in JBOSS
- Spring - configure Jboss Intros for xml with java config?
- Set system properties in standalone-full.xml in wildfly 8.2
- Jboss showing this error in eclipse
- Errors in named queries: findByName in JBoss AS7 with Hibernate 3.6 and OJdbc6
- How can I make JBoss launch block until build workspace is complete?
- Hot deploying HTML templates generates question marks in the place of chinese characters - only on CentOS
- Maven not picking JAVA_HOME correctly on Bamboo
- JDiameter and SCTP throw SCTPManagement exception
- Method invocation failed when throwing exception from web service
- "Destroying connection that could not be successfully matched"
- Class Path entry my.jar does not point to a valid jar for a Class-Path reference
- Arquillian don't clean deployment from JBoss when run from console
- Error installing JBoss BPM Suite
- Deploye two wars with different domain name but same context-path in same jboss-4.0.3
- Issue with Project References in Java Web Application
Related Questions in EJB-3.1
- Getting java.lang.ClassFormatError: Duplicate method name&signature in class file when implementing PERTHIS aspectJ implementation in Wildfly 8
- Precedence of EJB Deployment Descriptors
- Track actions of several users in a singleton bean
- Can I call a method with TransactionAttributeType.REQUIRED from another method with TransactionAttributeType.NOT_SUPPORTED in same EJB
- Stateful vs Stateless EJB's Expected Behavior
- Create Two Thread Pools for Asynchronous session bean methods in JBoss EAP6?
- Why Wildfly 8.1.0 final return java.lang.NoClassDefFoundError: when deploying ejb module with a remote application library but glassfish doesn’t?
- Cannot reach EJB exposed as REST service
- Calling an EJB interface within a @Singleton
- Cancel ejb timer on rollback
- @Schedule timer cause server systemException
- Passing method parameters from EJB3 to EJB2 is not happening
- In EJB 3.1, how technically does the container proxy and effectively spoof my no-interface object?
- EJB 3.1 asynchronous method and thread pool
- setFirstResult() and Limit Failing in Ejb3.1
Related Questions in GLASSFISH-4
- GlassFish 4.0 CDI deployment failure + Apache Spark
- glassfish adapter missing in eclipse kepler
- GlassFish 4 server not starting
- build-impl.xml : 1052 :The module has not been deployed. See the server log for details
- Failed to send an email after migration from Glassfish 2.1 to Glassfish 4.1
- installing DBpedia spotlight on windows 7
- HTTP Status 500 - Internal Server Error when return object
- How can I add GlassFish 4.1 server in Eclipse Neon 2?
- stop the glass-fish server after closing the tab of the web application in netbeans?
- EJB Null point exception
- GlassFish 4.1 + Hibernate 4.3 = Cannot override mapping through orm.xml
- GlassFish 4.1 - simultaneous access to web admin console of two domains of the same GF
- Custom events for GlassFish in Java Flight Recorder / Java Mission Control
- Setting non-serializable attribute value into HttpSession
- Invalid URL Pattern When Deploying To Glassfish 4.1
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
The container generates a proxy class that is a subclass of your no-interface EJB class, and then it overrides all of the methods to do its normal proxying (setup, teardown, and invoking an actual bean instance) rather than calling methods in your instance. Since java.lang.reflect.Proxy doesn't support extending a class, containers have to use another approach to generate a class, likely using a bytecode library like ASM, BCEL, Javassist, etc.