Wednesday, September 10, 2014

weblogic integrating remote ejb via foreign jndi provider

Server Env Overview

weblogic 12c (12.1.1), with domain setup as
  • AdminServer - domain admin 
  • CoreServer - host core business service EJBs
  • AppServer - host application specific EJBs which uses core business service EJBs

Foreign JNDI Provider Setup

login to admin console -> domain -> Services -> Foreign JNDI Providers, create new Foreign JNDI Provider

where Provider URL is pointing to CoreServer and Targets points to AppServer.

Add Foreign JNDI Links as

where Local JNDI Name is the global JNDI name used in EJBs from AppServer and Remote JNDI Name is the global JNDI name for remote EJBs deployed in CoreServer.


Inject Remote EJBs via @EJB annotation

To use remote ejbs from JavaEE components from AppServer (say EJBs), simply add EJB ref as

@EJB(mappedName="<the_local_JNDI_name_as_defined_in_Foreign_JNDI_Links>") 
AssignmentEjb tmpEjb;

where mappedName is the global JNDI name as defined in local JNDI name in Foreign JNDI Links in Weblogic Admin console.

Tuesday, September 9, 2014

eclipse remote debugging app in managed weblogic server

Dev Env Overview

  • Eclipse JUNO + OEPE bundle
  • WLS 12c (12.1.1) in remote Linux
    • domain setup: admin server, core server, front server, app server
Launch managed WLS server in development mode with debug on
  1. cd $WLS_DOMAIN/bin
  2. start Admin server: startWebLogic.sh << WLS Start Mode=Development
  3. start managed CoreServer0: startManagedWebLogic.sh CoreServer0
  4. start managed FrontServer: startManagedWebLogic.sh FrontServer
  5. start managed AppServer in dev mode with debug on
debugFlag=true DEBUG_PORT=29898 startManagedWebLogic.sh MyAppServer t3://<my-app-server-host>:<my-app-server-port> noderby


Eclipse Setup
  1. download/install Eclipse JUNO + OEPE bundle from Oracle website
  2. configure proxy
  3. install m2e plugin for Juno "M2E - Maven Integration for Eclipse" from Eclipse Marketplace
  4. in Java EE perspective, in Servers tab, create a new server pointing to remote Linux server
    22426: my wls domain admin port; 29898: my appserver debugging port
  5. update advanced publishing config of the newly added server (change designed target server)
  6. (checkpoint) now Eclipse is talking to remote server
  7. add Java EE project to new server
Publish Dev Change to Remote Server
  1. make dev changes
  2. when you're ready, click the publish icon () to publish to remote server to testing 
Debugging App on Remote Server
  1. (checkpoint) make sure remote Server is running with debug On
  2. from Eclipse -> Java EE Perspective -> Servers view, click debug icon () to enter debug mode
  3. set breakpoint in IDE
  4. hit the server; Eclipse will bring up debug perspective when breakpoint is reached