Hi,
 I am trying to get OpenWebBeans 1.1.5 working in WebLogic 11g (10.3.6).
 I don't need any JSF (MyFaces) because I am trying to use this for writing Web 
Services.

 But I can bring in CODI if it is needed.

=============================== 
Jars in WebContent/WEB-INF/lib:
=============================== 

geronimo-atinject_1.0_spec-1.0.jar
geronimo-interceptor_1.1_spec-1.0.jar
geronimo-jcdi_1.0_spec-1.0.jar
javassist.jar
openwebbeans-ee-1.1.3.jar
openwebbeans-ee-common-1.1.3.jar
openwebbeans-ejb-1.1.3.jar
openwebbeans-el10-1.1.3.jar
openwebbeans-impl-1.1.3.jar
openwebbeans-jms-1.1.3.jar 
openwebbeans-osgi-1.1.3.jar
openwebbeans-resource-1.1.3.jar
openwebbeans-spi-1.1.3.jar
openwebbeans-web-1.1.3.jar
scannotation-1.0.2.jar

=============================== 
WebContent/WEB-INF/web.xml
=============================== 

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
        xmlns="http://java.sun.com/xml/ns/javaee"; 
        xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"; 
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"; 
        id="WebApp_ID" version="2.5">
  <display-name>OWBWL11g</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
  
  <listener>
    
<listener-class>org.apache.webbeans.servlet.WebBeansConfigurationListener</listener-class>
  </listener>
  
  <!-- I ran with and without this resource-env-ref section -->
  <resource-env-ref>
    <description>Object factory for the CDI Bean Manager</description>
    <resource-env-ref-name>BeanManager</resource-env-ref-name>
    
<resource-env-ref-type>javax.enterprise.inject.spi.BeanManager</resource-env-ref-type>
  </resource-env-ref>

  <servlet>
    <description></description>
    <display-name>BookServlet</display-name>
    <servlet-name>BookServlet</servlet-name>
    <servlet-class>oracle.km.cdi.test.model.BookServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>BookServlet</servlet-name>
    <url-pattern>/BookServlet</url-pattern>
  </servlet-mapping>

</web-app>

=============================== 
Other files:
=============================== 
src/META-INF/openwebbeans/openwebbeans.properties
src/META-INF/persistence.xml
WebContent/WEB-INF/weblogic.xml (empty except for weblogic-verison and 
context-root).
=============================== 

I am getting the following exception:


<Mar 11, 2012 9:20:03 PM EDT> <Warning> <JMX> <BEA-149517> <An attempt was made 
to unregister an mbean that was already
unregistered: weblogic.servlet.internal.ServletRuntimeMBeanImpl@5f788551>
Mar 11, 2012 9:20:50 PM org.apache.webbeans.web.lifecycle.WebContainerLifecycle 
startApplication
INFO: OpenWebBeans Container is starting...
Mar 11, 2012 9:20:50 PM org.apache.webbeans.plugins.PluginLoader startUp
INFO: Adding OpenWebBeansPlugin : [OpenWebBeansJmsPlugin]
Mar 11, 2012 9:20:50 PM org.apache.webbeans.web.scanner.WebScannerService 
addWebBeansXmlLocation
INFO: added beans.xml marker: 
file:/C:/Users/test/eclipse/workspaces/2012_0226/.metadata/.plugins/org.eclipse.core.resources/.projects/OWBWL11gEAR/beadep/mydomain/OWBWL11gEAR/OWBWL11g.war/WEB-INF/beans.xml
Mar 11, 2012 9:20:50 PM org.apache.webbeans.util.JNDIUtil bind
SEVERE: Unable to bind object with name : [java:comp/BeanManager]
javax.naming.OperationNotSupportedException: bind not allowed in a 
ReadOnlyContext; remaining name 'BeanManager'
        at 
weblogic.jndi.factories.java.ReadOnlyContextWrapper.newOperationNotSupportedException(ReadOnlyContextWrapper.java:145)
        at 
weblogic.jndi.factories.java.ReadOnlyContextWrapper.newOperationNotSupportedException(ReadOnlyContextWrapper.java:161)
        at 
weblogic.jndi.factories.java.ReadOnlyContextWrapper.bind(ReadOnlyContextWrapper.java:57)
        at org.apache.webbeans.util.JNDIUtil.bind(JNDIUtil.java:69)
        at 
org.apache.webbeans.ee.common.services.JNDIServiceEnterpriseImpl.bind(JNDIServiceEnterpriseImpl.java:44)
        at 
org.apache.webbeans.config.BeansDeployer.deploy(BeansDeployer.java:147)
        at 
org.apache.webbeans.lifecycle.AbstractLifeCycle.startApplication(AbstractLifeCycle.java:127)
        at 
org.apache.webbeans.web.lifecycle.WebContainerLifecycle.startApplication(WebContainerLifecycle.java:88)
        at 
org.apache.webbeans.servlet.WebBeansConfigurationListener.contextInitialized(WebBeansConfigurationListener.java:85)
        at 
weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:481)
        at 
weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
        at 
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
        at 
weblogic.servlet.internal.EventsManager.notifyContextCreatedEvent(EventsManager.java:181)
        at 
weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1868)
        at 
weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:3154)
        at 
weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1518)
        at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:484)
        at 
weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:425)
        at 
weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
        at 
weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:119)
        at 
weblogic.application.internal.flow.ScopedModuleDriver.start(ScopedModuleDriver.java:200)
        at 
weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:247)
        at 
weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:425)
        at 
weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
        at 
weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:119)
        at 
weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:27)
        at 
weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:671)
        at 
weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
        at 
weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:212)
        at 
weblogic.application.internal.EarDeployment.activate(EarDeployment.java:59)
        at 
weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:161)
        at 
weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:79)
        at 
weblogic.deploy.internal.targetserver.operations.AbstractOperation.activate(AbstractOperation.java:569)
        at 
weblogic.deploy.internal.targetserver.operations.ActivateOperation.activateDeployment(ActivateOperation.java:150)
        at 
weblogic.deploy.internal.targetserver.operations.ActivateOperation.doCommit(ActivateOperation.java:116)
        at 
weblogic.deploy.internal.targetserver.operations.AbstractOperation.commit(AbstractOperation.java:323)
        at 
weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentCommit(DeploymentManager.java:844)
        at 
weblogic.deploy.internal.targetserver.DeploymentManager.activateDeploymentList(DeploymentManager.java:1253)
        at 
weblogic.deploy.internal.targetserver.DeploymentManager.handleCommit(DeploymentManager.java:440)
        at 
weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.commit(DeploymentServiceDispatcher.java:163)
        at 
weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doCommitCallback(DeploymentReceiverCallbackDeliverer.java:195)
        at 
weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$100(DeploymentReceiverCallbackDeliverer.java:13)
        at 
weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$2.run(DeploymentReceiverCallbackDeliverer.java:68)
        at 
weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:545)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
beginning the scanning process
scanning type: testowb.cdi.util.EntityTransactionInterceptor
scanning type: testowb.cdi.util.EntityTransactionInterceptor
scanning type: testowb.cdi.util.PersistenceContextExtension$3
scanning type: testowb.cdi.util.PersistenceContextExtension$1
scanning type: testowb.cdi.test.model.BookFactory
scanning type: testowb.cdi.test.model.BookServlet
scanning type: testowb.cdi.test.model.Book
scanning type: testowb.cdi.util.JTATransactionInterceptor
scanning type: testowb.cdi.test.model.Init
scanning type: testowb.cdi.util.PersistenceContextExtension$5
scanning type: testowb.cdi.util.PersistenceContextExtension
scanning type: testowb.cdi.util.PersistenceContextExtension$4
scanning type: testowb.cdi.util.PersistenceContextExtension$2
scanning type: testowb.cdi.util.Transactional
finished the scanning process
Mar 11, 2012 9:20:50 PM org.apache.webbeans.config.BeansDeployer 
validateInjectionPoints
INFO: All injection points were validated successfully.
Mar 11, 2012 9:20:50 PM org.apache.webbeans.web.lifecycle.WebContainerLifecycle 
startApplication
INFO: OpenWebBeans Container has started, it took [320] ms.


I believe "bind not allowed in a ReadOnlyContext;" is similar to this problem 
Weld has with Tomcat:
http://docs.jboss.org/weld/reference/1.1.0.Final/en-US/html/environments.html#d0e5259

But I need a solution for WebLogic 11g similar to the META-INF/context.xml 
solution recommended there in Weld documentation.

WebLogic shows that the application (EAR) is loaded and I can see it in 
WebLogic console.


FYI:

1) I did not add any jars to WebLogic itself or to its startup classpaths.
2) The example is from 
http://seamframework.org/Documentation/WeldAndJPARunningInTomcat
3) I need to get this working in WebLogic 11g ( I cannot use WebLogic 12c in 
the environment, 
CDI is built in to WebLogic 12c and I got the app already working in 12c).
4) If possible I would like to get complete integration with EE injections 
(using Session Beans with CDI etc) - but I will settle for Servlet Container 
integration
5) When I try to hit the Book Servlet, I get the following exception implying 
BookFactory is not injected in to the BookServlet.


Error 500--Internal Server Error

java.lang.NullPointerException
        at testowb.cdi.test.model.BookServlet.doGet(BookServlet.java:39)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        

Here is part of the BookServlet class:

public class BookServlet extends HttpServlet {

 @Inject
 BookFactory bookFactory;

 protected void doGet(HttpServletRequest request, HttpServletResponse response) 
throws ServletException, IOException {
        String author = request.getParameter("author");
        String bookName = request.getParameter("bookName");
        if (author != null && bookName != null ) {
                bookFactory.getBook().setAuthor(author); // <=============== 
Line 39
                bookFactory.getBook().setName(bookName);
                Book toBeSaved = bookFactory.getBook();
                bookFactory.saveBook();
                ...
        }
        ...
 }
}

Thanks,
-Chandra

Reply via email to