You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2012/06/28 21:26:14 UTC

svn commit: r1355123 - in /openejb/trunk/openejb: container/openejb-core/src/main/java/org/apache/openejb/ examples/webapps/ examples/webapps/pojo-webservice/ examples/webapps/pojo-webservice/src/ examples/webapps/pojo-webservice/src/main/ examples/web...

Author: rmannibucau
Date: Thu Jun 28 19:26:12 2012
New Revision: 1355123

URL: http://svn.apache.org/viewvc?rev=1355123&view=rev
Log:
TOMEE-258 some work about injections in pojo ws

Added:
    openejb/trunk/openejb/examples/webapps/pojo-webservice/
    openejb/trunk/openejb/examples/webapps/pojo-webservice/global-groovy.log
    openejb/trunk/openejb/examples/webapps/pojo-webservice/pom.xml
    openejb/trunk/openejb/examples/webapps/pojo-webservice/soapui-errors.log
    openejb/trunk/openejb/examples/webapps/pojo-webservice/soapui.log
    openejb/trunk/openejb/examples/webapps/pojo-webservice/src/
    openejb/trunk/openejb/examples/webapps/pojo-webservice/src/main/
    openejb/trunk/openejb/examples/webapps/pojo-webservice/src/main/java/
    openejb/trunk/openejb/examples/webapps/pojo-webservice/src/main/java/org/
    openejb/trunk/openejb/examples/webapps/pojo-webservice/src/main/java/org/superbiz/
    openejb/trunk/openejb/examples/webapps/pojo-webservice/src/main/java/org/superbiz/ws/
    openejb/trunk/openejb/examples/webapps/pojo-webservice/src/main/java/org/superbiz/ws/pojo/
    openejb/trunk/openejb/examples/webapps/pojo-webservice/src/main/java/org/superbiz/ws/pojo/PojoWS.java
    openejb/trunk/openejb/examples/webapps/pojo-webservice/src/main/java/org/superbiz/ws/pojo/WS.java
    openejb/trunk/openejb/examples/webapps/pojo-webservice/src/main/webapp/
    openejb/trunk/openejb/examples/webapps/pojo-webservice/src/main/webapp/WEB-INF/
    openejb/trunk/openejb/examples/webapps/pojo-webservice/src/main/webapp/WEB-INF/web.xml
Modified:
    openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/InjectionProcessor.java
    openejb/trunk/openejb/examples/webapps/pom.xml
    openejb/trunk/openejb/server/openejb-axis/src/main/java/org/apache/openejb/server/axis/AxisService.java
    openejb/trunk/openejb/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfService.java
    openejb/trunk/openejb/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/pojo/PojoEndpoint.java
    openejb/trunk/openejb/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/pojo/PojoWsContainer.java
    openejb/trunk/openejb/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java
    openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java

Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/InjectionProcessor.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/InjectionProcessor.java?rev=1355123&r1=1355122&r2=1355123&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/InjectionProcessor.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/InjectionProcessor.java Thu Jun 28 19:26:12 2012
@@ -16,16 +16,21 @@
  */
 package org.apache.openejb;
 
+import org.apache.openejb.core.ivm.naming.JndiUrlReference;
+import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.spi.ContainerSystem;
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
 import org.apache.openejb.util.AsmParameterNameLoader;
 import org.apache.openejb.util.PassthroughFactory;
+import org.apache.xbean.naming.reference.SimpleReference;
 import org.apache.xbean.recipe.ObjectRecipe;
 import org.apache.xbean.recipe.Option;
 
 import javax.naming.Context;
 import javax.naming.NamingException;
 import java.util.Collection;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.LinkedHashMap;
@@ -48,6 +53,8 @@ public class InjectionProcessor<T> {
     private final Context context;
     private T instance;
     private T suppliedInstance;
+    private final Map<String, Object> bindings = new HashMap<String, Object>();
+
 
     public InjectionProcessor(T suppliedInstance, Collection<Injection> injections, Context context) {
         this.beanClass = null;
@@ -74,6 +81,11 @@ public class InjectionProcessor<T> {
         this.context = context;
     }
 
+    public InjectionProcessor(Class<? extends T> beanClass, Collection<Injection> injections, List<Method> postConstructMethods, List<Method> preDestroyMethods, Context context, Map<String, Object> bindings) {
+        this(beanClass, injections, postConstructMethods, preDestroyMethods, context);
+        this.bindings.putAll(bindings);
+    }
+
     public void setProperty(String name, Object value) {
         properties.put(name, value);
     }
@@ -109,6 +121,8 @@ public class InjectionProcessor<T> {
 
         fillInjectionProperties(objectRecipe);
 
+        bindings.clear();
+
         for (Entry<String, Object> entry : properties.entrySet()) {
             objectRecipe.setProperty(entry.getKey(), entry.getValue());
         }
@@ -175,23 +189,45 @@ public class InjectionProcessor<T> {
 
         if (suppliedInstance != null) clazz = suppliedInstance.getClass();
 
-        for (Injection injection : injections) {
-            if (injection.getTarget() == null) continue;
-            if (!injection.getTarget().isAssignableFrom(clazz)) continue;
-            try {
+        if (context != null) {
+            for (Injection injection : injections) {
+                if (injection.getTarget() == null) continue;
+                if (!injection.getTarget().isAssignableFrom(clazz)) continue;
+
                 String jndiName = injection.getJndiName();
-                Object value = context.lookup(jndiName);
+                Object value;
+                try {
+                    value = context.lookup(jndiName);
+                } catch (NamingException ne) { // some fallback
+                    value = bindings.get(jndiName);
+                    if (value instanceof SimpleReference) {
+                        try {
+                            value = ((SimpleReference) value).getContent();
+                        } catch (NamingException e) {
+                            if (value instanceof JndiUrlReference) {
+                                try {
+                                    value = SystemInstance.get().getComponent(ContainerSystem.class).getJNDIContext()
+                                                    .lookup(((JndiUrlReference) value).getJndiName());
+                                } catch (NamingException e1) {
+                                    value = null;
+                                }
+                            }
+                        }
+                    }
+                }
 
-                String prefix;
-                if (usePrefix) {
-                    prefix = injection.getTarget().getName() + "/";
+                if (value != null) {
+                    String prefix;
+                    if (usePrefix) {
+                        prefix = injection.getTarget().getName() + "/";
+                    } else {
+                        prefix = "";
+                    }
+
+                    objectRecipe.setProperty(prefix + injection.getName(), value);
                 } else {
-                    prefix = "";
+                    logger.warning("Injection data not found in JNDI context: jndiName='" + injection.getJndiName() + "', target=" + injection.getTarget().getName() + "/" + injection.getName());
                 }
-
-                objectRecipe.setProperty(prefix + injection.getName(), value);
-            } catch (NamingException e) {
-                logger.warning("Injection data not found in JNDI context: jndiName='" + injection.getJndiName() + "', target=" + injection.getTarget().getName() + "/" + injection.getName());
             }
         }
     }

Added: openejb/trunk/openejb/examples/webapps/pojo-webservice/global-groovy.log
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/examples/webapps/pojo-webservice/global-groovy.log?rev=1355123&view=auto
==============================================================================
    (empty)

Added: openejb/trunk/openejb/examples/webapps/pojo-webservice/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/examples/webapps/pojo-webservice/pom.xml?rev=1355123&view=auto
==============================================================================
--- openejb/trunk/openejb/examples/webapps/pojo-webservice/pom.xml (added)
+++ openejb/trunk/openejb/examples/webapps/pojo-webservice/pom.xml Thu Jun 28 19:26:12 2012
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.superbiz</groupId>
+  <artifactId>pojo-webservice</artifactId>
+  <packaging>war</packaging>
+  <version>1.1-SNAPSHOT</version>
+  <name>OpenEJB :: Web Examples :: Pojo WS</name>
+  <properties>
+    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    <tomee.version>1.1.0-SNAPSHOT</tomee.version>
+  </properties>
+  <repositories>
+    <repository>
+      <id>apache-m2-snapshot</id>
+      <name>Apache Snapshot Repository</name>
+      <url>http://repository.apache.org/snapshots</url>
+    </repository>
+    <repository>
+      <id>tomcat-m2-repo</id>
+      <name>Tomcat Dev Repository</name>
+      <url>http://tomcat.apache.org/dev/dist/m2-repository/</url>
+    </repository>
+  </repositories>
+  <pluginRepositories>
+    <pluginRepository>
+      <id>apache-m2-snapshot</id>
+      <name>Apache Snapshot Repository</name>
+      <url>http://repository.apache.org/snapshots</url>
+    </pluginRepository>
+  </pluginRepositories>
+  <build>
+    <finalName>${project.artifactId}</finalName>
+    <defaultGoal>package</defaultGoal>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <version>2.4</version>
+        <configuration>
+          <source>1.6</source>
+          <target>1.6</target>
+        </configuration>
+      </plugin>
+      <plugin> <!-- http://localhost:8080/pojo-webservice?wsdl -->
+        <groupId>org.apache.openejb.maven</groupId>
+        <artifactId>tomee-maven-plugin</artifactId>
+        <version>1.0.0-SNAPSHOT</version>
+        <configuration>
+          <tomeeVersion>${tomee.version}</tomeeVersion>
+          <tomeeClassifier>plus</tomeeClassifier>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.openejb</groupId>
+      <artifactId>javaee-api</artifactId>
+      <version>6.0-4</version>
+      <scope>provided</scope>
+    </dependency>
+  </dependencies>
+  <!--
+  This section allows you to configure where to publish libraries for sharing.
+  It is not required and may be deleted.  For more information see:
+  http://maven.apache.org/plugins/maven-deploy-plugin/
+  -->
+  <distributionManagement>
+    <repository>
+      <id>local-release-repo</id>
+      <url>file://${project.build.outputDirectory}/repo/</url>
+    </repository>
+    <snapshotRepository>
+      <id>local-snapshot-repo</id>
+      <url>file://${project.build.outputDirectory}/repo/</url>
+    </snapshotRepository>
+  </distributionManagement>
+</project>

Added: openejb/trunk/openejb/examples/webapps/pojo-webservice/soapui-errors.log
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/examples/webapps/pojo-webservice/soapui-errors.log?rev=1355123&view=auto
==============================================================================
--- openejb/trunk/openejb/examples/webapps/pojo-webservice/soapui-errors.log (added)
+++ openejb/trunk/openejb/examples/webapps/pojo-webservice/soapui-errors.log Thu Jun 28 19:26:12 2012
@@ -0,0 +1,30 @@
+2012-06-28 18:59:46,134 ERROR [errorlog] com.eviware.soapui.impl.support.definition.support.InvalidDefinitionException
+com.eviware.soapui.impl.support.definition.support.InvalidDefinitionException
+	at com.eviware.soapui.impl.wsdl.support.wsdl.WsdlLoader.loadXmlObject(WsdlLoader.java:138)
+	at com.eviware.soapui.impl.wsdl.support.xsd.SchemaUtils.getDefinitionParts(SchemaUtils.java:534)
+	at com.eviware.soapui.impl.wsdl.support.xsd.SchemaUtils.getDefinitionParts(SchemaUtils.java:523)
+	at com.eviware.soapui.impl.support.definition.support.AbstractDefinitionCache.update(AbstractDefinitionCache.java:97)
+	at com.eviware.soapui.impl.support.definition.support.AbstractDefinitionContext$Loader.construct(AbstractDefinitionContext.java:226)
+	at com.eviware.soapui.support.swing.SwingWorkerDelegator.construct(SwingWorkerDelegator.java:46)
+	at com.eviware.soapui.support.swing.SwingWorker$2.run(SwingWorker.java:149)
+	at java.lang.Thread.run(Thread.java:662)
+2012-06-28 19:00:22,801 ERROR [errorlog] com.eviware.soapui.impl.support.definition.support.InvalidDefinitionException
+com.eviware.soapui.impl.support.definition.support.InvalidDefinitionException
+	at com.eviware.soapui.impl.wsdl.support.wsdl.WsdlLoader.loadXmlObject(WsdlLoader.java:138)
+	at com.eviware.soapui.impl.wsdl.support.xsd.SchemaUtils.getDefinitionParts(SchemaUtils.java:534)
+	at com.eviware.soapui.impl.wsdl.support.xsd.SchemaUtils.getDefinitionParts(SchemaUtils.java:523)
+	at com.eviware.soapui.impl.support.definition.support.AbstractDefinitionCache.update(AbstractDefinitionCache.java:97)
+	at com.eviware.soapui.impl.support.definition.support.AbstractDefinitionContext$Loader.construct(AbstractDefinitionContext.java:226)
+	at com.eviware.soapui.support.swing.SwingWorkerDelegator.construct(SwingWorkerDelegator.java:46)
+	at com.eviware.soapui.support.swing.SwingWorker$2.run(SwingWorker.java:149)
+	at java.lang.Thread.run(Thread.java:662)
+2012-06-28 19:01:09,715 ERROR [errorlog] com.eviware.soapui.impl.support.definition.support.InvalidDefinitionException
+com.eviware.soapui.impl.support.definition.support.InvalidDefinitionException
+	at com.eviware.soapui.impl.wsdl.support.wsdl.WsdlLoader.loadXmlObject(WsdlLoader.java:138)
+	at com.eviware.soapui.impl.wsdl.support.xsd.SchemaUtils.getDefinitionParts(SchemaUtils.java:534)
+	at com.eviware.soapui.impl.wsdl.support.xsd.SchemaUtils.getDefinitionParts(SchemaUtils.java:523)
+	at com.eviware.soapui.impl.support.definition.support.AbstractDefinitionCache.update(AbstractDefinitionCache.java:97)
+	at com.eviware.soapui.impl.support.definition.support.AbstractDefinitionContext$Loader.construct(AbstractDefinitionContext.java:226)
+	at com.eviware.soapui.support.swing.SwingWorkerDelegator.construct(SwingWorkerDelegator.java:46)
+	at com.eviware.soapui.support.swing.SwingWorker$2.run(SwingWorker.java:149)
+	at java.lang.Thread.run(Thread.java:662)

Added: openejb/trunk/openejb/examples/webapps/pojo-webservice/soapui.log
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/examples/webapps/pojo-webservice/soapui.log?rev=1355123&view=auto
==============================================================================
--- openejb/trunk/openejb/examples/webapps/pojo-webservice/soapui.log (added)
+++ openejb/trunk/openejb/examples/webapps/pojo-webservice/soapui.log Thu Jun 28 19:26:12 2012
@@ -0,0 +1,50 @@
+2012-06-28 18:57:03,268 INFO  [DefaultSoapUICore] initialized soapui-settings from [/opt/softs/soapui-4.0.1/soapui-settings.xml]
+2012-06-28 18:57:05,058 INFO  [SoapUI] Used java version: 1.6.0_30
+2012-06-28 18:59:32,641 INFO  [SchemaUtils] Added default schema from file:/opt/softs/soapui-4.0.1/bin/soapui-4.0.1.jar!/com/eviware/soapui/resources/xsds/xop.xsd with targetNamespace http://www.w3.org/2004/08/xop/include
+2012-06-28 18:59:33,004 INFO  [SchemaUtils] Added default schema from file:/opt/softs/soapui-4.0.1/bin/soapui-4.0.1.jar!/com/eviware/soapui/resources/xsds/XMLSchema.xsd with targetNamespace http://www.w3.org/2001/XMLSchema
+2012-06-28 18:59:33,005 INFO  [SchemaUtils] Added default schema from file:/opt/softs/soapui-4.0.1/bin/soapui-4.0.1.jar!/com/eviware/soapui/resources/xsds/xml.xsd with targetNamespace http://www.w3.org/XML/1998/namespace
+2012-06-28 18:59:33,006 INFO  [SchemaUtils] Added default schema from file:/opt/softs/soapui-4.0.1/bin/soapui-4.0.1.jar!/com/eviware/soapui/resources/xsds/swaref.xsd with targetNamespace http://ws-i.org/profiles/basic/1.1/xsd
+2012-06-28 18:59:33,007 INFO  [SchemaUtils] Added default schema from file:/opt/softs/soapui-4.0.1/bin/soapui-4.0.1.jar!/com/eviware/soapui/resources/xsds/xmime200505.xsd with targetNamespace http://www.w3.org/2005/05/xmlmime
+2012-06-28 18:59:33,008 INFO  [SchemaUtils] Added default schema from file:/opt/softs/soapui-4.0.1/bin/soapui-4.0.1.jar!/com/eviware/soapui/resources/xsds/xmime200411.xsd with targetNamespace http://www.w3.org/2004/11/xmlmime
+2012-06-28 18:59:33,010 INFO  [SchemaUtils] Added default schema from file:/opt/softs/soapui-4.0.1/bin/soapui-4.0.1.jar!/com/eviware/soapui/resources/xsds/soapEnvelope.xsd with targetNamespace http://schemas.xmlsoap.org/soap/envelope/
+2012-06-28 18:59:33,027 INFO  [SchemaUtils] Added default schema from file:/opt/softs/soapui-4.0.1/bin/soapui-4.0.1.jar!/com/eviware/soapui/resources/xsds/soapEncoding.xsd with targetNamespace http://schemas.xmlsoap.org/soap/encoding/
+2012-06-28 18:59:33,029 INFO  [SchemaUtils] Added default schema from file:/opt/softs/soapui-4.0.1/bin/soapui-4.0.1.jar!/com/eviware/soapui/resources/xsds/soapEnvelope12.xsd with targetNamespace http://www.w3.org/2003/05/soap-envelope
+2012-06-28 18:59:33,036 INFO  [SchemaUtils] Added default schema from file:/opt/softs/soapui-4.0.1/bin/soapui-4.0.1.jar!/com/eviware/soapui/resources/xsds/soapEncoding12.xsd with targetNamespace http://www.w3.org/2003/05/soap-encoding
+2012-06-28 18:59:46,131 ERROR [WsdlLoader] Failed to load url [http://localhost:8080/pojo-webservice?wsdl]
+2012-06-28 18:59:46,132 ERROR [SoapUI] An error occured [com.eviware.soapui.impl.support.definition.support.InvalidDefinitionException], see error log for details
+2012-06-28 18:59:46,134 ERROR [errorlog] com.eviware.soapui.impl.support.definition.support.InvalidDefinitionException
+com.eviware.soapui.impl.support.definition.support.InvalidDefinitionException
+	at com.eviware.soapui.impl.wsdl.support.wsdl.WsdlLoader.loadXmlObject(WsdlLoader.java:138)
+	at com.eviware.soapui.impl.wsdl.support.xsd.SchemaUtils.getDefinitionParts(SchemaUtils.java:534)
+	at com.eviware.soapui.impl.wsdl.support.xsd.SchemaUtils.getDefinitionParts(SchemaUtils.java:523)
+	at com.eviware.soapui.impl.support.definition.support.AbstractDefinitionCache.update(AbstractDefinitionCache.java:97)
+	at com.eviware.soapui.impl.support.definition.support.AbstractDefinitionContext$Loader.construct(AbstractDefinitionContext.java:226)
+	at com.eviware.soapui.support.swing.SwingWorkerDelegator.construct(SwingWorkerDelegator.java:46)
+	at com.eviware.soapui.support.swing.SwingWorker$2.run(SwingWorker.java:149)
+	at java.lang.Thread.run(Thread.java:662)
+2012-06-28 19:00:22,801 ERROR [WsdlLoader] Failed to load url [http://127.0.01:8080/pojo-webservice?wsdl]
+2012-06-28 19:00:22,801 ERROR [SoapUI] An error occured [com.eviware.soapui.impl.support.definition.support.InvalidDefinitionException], see error log for details
+2012-06-28 19:00:22,801 ERROR [errorlog] com.eviware.soapui.impl.support.definition.support.InvalidDefinitionException
+com.eviware.soapui.impl.support.definition.support.InvalidDefinitionException
+	at com.eviware.soapui.impl.wsdl.support.wsdl.WsdlLoader.loadXmlObject(WsdlLoader.java:138)
+	at com.eviware.soapui.impl.wsdl.support.xsd.SchemaUtils.getDefinitionParts(SchemaUtils.java:534)
+	at com.eviware.soapui.impl.wsdl.support.xsd.SchemaUtils.getDefinitionParts(SchemaUtils.java:523)
+	at com.eviware.soapui.impl.support.definition.support.AbstractDefinitionCache.update(AbstractDefinitionCache.java:97)
+	at com.eviware.soapui.impl.support.definition.support.AbstractDefinitionContext$Loader.construct(AbstractDefinitionContext.java:226)
+	at com.eviware.soapui.support.swing.SwingWorkerDelegator.construct(SwingWorkerDelegator.java:46)
+	at com.eviware.soapui.support.swing.SwingWorker$2.run(SwingWorker.java:149)
+	at java.lang.Thread.run(Thread.java:662)
+2012-06-28 19:01:09,714 ERROR [WsdlLoader] Failed to load url [http://localhost:8080/pojo-webservice/?wsdl]
+2012-06-28 19:01:09,715 ERROR [SoapUI] An error occured [com.eviware.soapui.impl.support.definition.support.InvalidDefinitionException], see error log for details
+2012-06-28 19:01:09,715 ERROR [errorlog] com.eviware.soapui.impl.support.definition.support.InvalidDefinitionException
+com.eviware.soapui.impl.support.definition.support.InvalidDefinitionException
+	at com.eviware.soapui.impl.wsdl.support.wsdl.WsdlLoader.loadXmlObject(WsdlLoader.java:138)
+	at com.eviware.soapui.impl.wsdl.support.xsd.SchemaUtils.getDefinitionParts(SchemaUtils.java:534)
+	at com.eviware.soapui.impl.wsdl.support.xsd.SchemaUtils.getDefinitionParts(SchemaUtils.java:523)
+	at com.eviware.soapui.impl.support.definition.support.AbstractDefinitionCache.update(AbstractDefinitionCache.java:97)
+	at com.eviware.soapui.impl.support.definition.support.AbstractDefinitionContext$Loader.construct(AbstractDefinitionContext.java:226)
+	at com.eviware.soapui.support.swing.SwingWorkerDelegator.construct(SwingWorkerDelegator.java:46)
+	at com.eviware.soapui.support.swing.SwingWorker$2.run(SwingWorker.java:149)
+	at java.lang.Thread.run(Thread.java:662)
+2012-06-28 19:01:24,521 INFO  [DefaultSoapUICore] Settings saved to [/opt/softs/soapui-4.0.1/soapui-settings.xml]
+2012-06-28 19:01:28,074 INFO  [WorkspaceImpl] Saved workspace to [/opt/dev/openejb/openejb-trunk/examples/webapps/pojo-webservice/../../TestPBE-workspace.xml]

Added: openejb/trunk/openejb/examples/webapps/pojo-webservice/src/main/java/org/superbiz/ws/pojo/PojoWS.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/examples/webapps/pojo-webservice/src/main/java/org/superbiz/ws/pojo/PojoWS.java?rev=1355123&view=auto
==============================================================================
--- openejb/trunk/openejb/examples/webapps/pojo-webservice/src/main/java/org/superbiz/ws/pojo/PojoWS.java (added)
+++ openejb/trunk/openejb/examples/webapps/pojo-webservice/src/main/java/org/superbiz/ws/pojo/PojoWS.java Thu Jun 28 19:26:12 2012
@@ -0,0 +1,28 @@
+package org.superbiz.ws.pojo;
+
+import javax.annotation.Resource;
+import javax.jws.WebService;
+import javax.xml.ws.WebServiceContext;
+import javax.transaction.UserTransaction;
+
+@WebService
+public class PojoWS implements WS {
+    @Resource
+    private WebServiceContext webServiceContext;
+
+    @Resource
+    private UserTransaction userTransaction;
+
+    @Override
+    public String ws() {
+        return webServiceContext + " & " + userTransaction;
+    }
+
+    public void setWebServiceContext(WebServiceContext webServiceContext) {
+        this.webServiceContext = webServiceContext;
+    }
+
+    public void setUserTransaction(UserTransaction userTransaction) {
+        this.userTransaction = userTransaction;
+    }
+}

Added: openejb/trunk/openejb/examples/webapps/pojo-webservice/src/main/java/org/superbiz/ws/pojo/WS.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/examples/webapps/pojo-webservice/src/main/java/org/superbiz/ws/pojo/WS.java?rev=1355123&view=auto
==============================================================================
--- openejb/trunk/openejb/examples/webapps/pojo-webservice/src/main/java/org/superbiz/ws/pojo/WS.java (added)
+++ openejb/trunk/openejb/examples/webapps/pojo-webservice/src/main/java/org/superbiz/ws/pojo/WS.java Thu Jun 28 19:26:12 2012
@@ -0,0 +1,8 @@
+package org.superbiz.ws.pojo;
+
+import javax.jws.WebService;
+
+@WebService
+public interface WS {
+    String ws();
+}

Added: openejb/trunk/openejb/examples/webapps/pojo-webservice/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/examples/webapps/pojo-webservice/src/main/webapp/WEB-INF/web.xml?rev=1355123&view=auto
==============================================================================
--- openejb/trunk/openejb/examples/webapps/pojo-webservice/src/main/webapp/WEB-INF/web.xml (added)
+++ openejb/trunk/openejb/examples/webapps/pojo-webservice/src/main/webapp/WEB-INF/web.xml Thu Jun 28 19:26:12 2012
@@ -0,0 +1,30 @@
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+-->
+<web-app xmlns="http://java.sun.com/xml/ns/javaee"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
+         version="3.0">
+  <servlet>
+    <servlet-name>ws</servlet-name>
+    <servlet-class>org.superbiz.ws.pojo.PojoWS</servlet-class>
+  </servlet>
+  <servlet-mapping>
+    <servlet-name>ws</servlet-name>
+    <url-pattern>/*</url-pattern>
+  </servlet-mapping>
+</web-app>

Modified: openejb/trunk/openejb/examples/webapps/pom.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/examples/webapps/pom.xml?rev=1355123&r1=1355122&r2=1355123&view=diff
==============================================================================
--- openejb/trunk/openejb/examples/webapps/pom.xml (original)
+++ openejb/trunk/openejb/examples/webapps/pom.xml Thu Jun 28 19:26:12 2012
@@ -33,6 +33,7 @@
     <module>jsf</module>
     <module>struts</module>
     <module>moviefun</module>
+    <module>pojo-webservice</module>
     <module>rest-example</module>
     <module>rest-example-with-application</module>
     <module>resources-declared-in-webapp</module>

Modified: openejb/trunk/openejb/server/openejb-axis/src/main/java/org/apache/openejb/server/axis/AxisService.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-axis/src/main/java/org/apache/openejb/server/axis/AxisService.java?rev=1355123&r1=1355122&r2=1355123&view=diff
==============================================================================
--- openejb/trunk/openejb/server/openejb-axis/src/main/java/org/apache/openejb/server/axis/AxisService.java (original)
+++ openejb/trunk/openejb/server/openejb-axis/src/main/java/org/apache/openejb/server/axis/AxisService.java Thu Jun 28 19:26:12 2012
@@ -99,7 +99,7 @@ public class AxisService extends WsServi
         }
     }
 
-    protected HttpListener createPojoWsContainer(URL moduleBaseUrl, PortData port, String serviceId, Class target, Context context, String contextRoot) throws Exception {
+    protected HttpListener createPojoWsContainer(URL moduleBaseUrl, PortData port, String serviceId, Class target, Context context, String contextRoot, Map<String, Object> bdgs) throws Exception {
         ClassLoader classLoader = target.getClassLoader();
 
         // todo build JaxRpcServiceInfo in assembler

Modified: openejb/trunk/openejb/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfService.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfService.java?rev=1355123&r1=1355122&r2=1355123&view=diff
==============================================================================
--- openejb/trunk/openejb/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfService.java (original)
+++ openejb/trunk/openejb/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/CxfService.java Thu Jun 28 19:26:12 2012
@@ -61,12 +61,12 @@ public class CxfService extends WsServic
         }
     }
 
-    protected HttpListener createPojoWsContainer(URL moduleBaseUrl, PortData port, String serviceId, Class target, Context context, String contextRoot) {
+    protected HttpListener createPojoWsContainer(URL moduleBaseUrl, PortData port, String serviceId, Class target, Context context, String contextRoot, Map<String, Object> bdgs) {
         Bus bus = CxfUtil.getBus();
 
         CxfCatalogUtils.loadOASISCatalog(bus, moduleBaseUrl, "META-INF/jax-ws-catalog.xml");
 
-        PojoWsContainer container = new PojoWsContainer(bus, port, context, target);
+        PojoWsContainer container = new PojoWsContainer(bus, port, context, target, bdgs);
         container.start();
         wsContainers.put(serviceId, container);
         return container;

Modified: openejb/trunk/openejb/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/pojo/PojoEndpoint.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/pojo/PojoEndpoint.java?rev=1355123&r1=1355122&r2=1355123&view=diff
==============================================================================
--- openejb/trunk/openejb/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/pojo/PojoEndpoint.java (original)
+++ openejb/trunk/openejb/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/pojo/PojoEndpoint.java Thu Jun 28 19:26:12 2012
@@ -18,11 +18,15 @@
 package org.apache.openejb.server.cxf.pojo;
 
 import org.apache.cxf.Bus;
+import org.apache.cxf.common.injection.ResourceInjector;
 import org.apache.cxf.jaxws.JAXWSMethodInvoker;
+import org.apache.cxf.jaxws.context.WebServiceContextResourceResolver;
 import org.apache.cxf.jaxws.support.JaxWsServiceFactoryBean;
+import org.apache.cxf.resource.DefaultResourceManager;
+import org.apache.cxf.resource.ResourceManager;
+import org.apache.cxf.resource.ResourceResolver;
 import org.apache.cxf.transport.http.HTTPTransportFactory;
 import org.apache.openejb.InjectionProcessor;
-import static org.apache.openejb.InjectionProcessor.unwrap;
 import org.apache.openejb.core.webservices.JaxWsUtils;
 import org.apache.openejb.core.webservices.PortData;
 import org.apache.openejb.server.cxf.CxfEndpoint;
@@ -31,11 +35,15 @@ import org.apache.openejb.server.cxf.Jax
 
 import javax.naming.Context;
 import javax.xml.ws.WebServiceException;
+import java.util.List;
+import java.util.Map;
+
+import static org.apache.openejb.InjectionProcessor.unwrap;
 
 public class PojoEndpoint extends CxfEndpoint {
     private InjectionProcessor<Object> injectionProcessor;
 
-    public PojoEndpoint(Bus bus, PortData port, Context context, Class<?> instance, HTTPTransportFactory httpTransportFactory) {
+    public PojoEndpoint(Bus bus, PortData port, Context context, Class<?> instance, HTTPTransportFactory httpTransportFactory, Map<String, Object> bindings) {
     	super(bus, port, context, instance, httpTransportFactory);
 
         String bindingURI = null;
@@ -55,10 +63,11 @@ public class PojoEndpoint extends CxfEnd
 
         // instantiate and inject resources into service
         try {
-            injectionProcessor = new InjectionProcessor<Object>(instance, port.getInjections(), null, null, unwrap(context));
+            injectionProcessor = new InjectionProcessor<Object>(instance, port.getInjections(), null, null, unwrap(context), bindings);
             injectionProcessor.createInstance();
             injectionProcessor.postConstruct();
             implementor = injectionProcessor.getInstance();
+            injectCxfResources(implementor);
         } catch (Exception e) {
             throw new WebServiceException("Service resource injection failed", e);
         }
@@ -66,6 +75,15 @@ public class PojoEndpoint extends CxfEnd
         service.setInvoker(new JAXWSMethodInvoker(implementor));
     }
 
+    private void injectCxfResources(final Object implementor) {
+        ResourceManager resourceManager = bus.getExtension(ResourceManager.class);
+        List<ResourceResolver> resolvers = resourceManager.getResourceResolvers();
+        resourceManager = new DefaultResourceManager(resolvers);
+        resourceManager.addResourceResolver(new WebServiceContextResourceResolver());
+        ResourceInjector injector = new ResourceInjector(resourceManager);
+        injector.inject(implementor);
+    }
+
     protected void init() {
         // configure and inject handlers
         try {

Modified: openejb/trunk/openejb/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/pojo/PojoWsContainer.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/pojo/PojoWsContainer.java?rev=1355123&r1=1355122&r2=1355123&view=diff
==============================================================================
--- openejb/trunk/openejb/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/pojo/PojoWsContainer.java (original)
+++ openejb/trunk/openejb/server/openejb-cxf/src/main/java/org/apache/openejb/server/cxf/pojo/PojoWsContainer.java Thu Jun 28 19:26:12 2012
@@ -22,19 +22,23 @@ import org.apache.openejb.core.webservic
 import org.apache.openejb.server.cxf.CxfWsContainer;
 
 import javax.naming.Context;
+import java.util.Map;
 
 public class PojoWsContainer extends CxfWsContainer {
     private final Context context;
     private final Class target;
+    private final Map<String, Object> bindings;
 
-    public PojoWsContainer(Bus bus, PortData port, Context context, Class target) {
+
+    public PojoWsContainer(Bus bus, PortData port, Context context, Class target, Map<String, Object> bdgs) {
         super(bus, port);
         if (target == null) throw new NullPointerException("target is null");
         this.context = context;
         this.target = target;
+        this.bindings = bdgs;
     }
 
     protected PojoEndpoint createEndpoint() {
-        return new PojoEndpoint(bus, port, context, target, httpTransportFactory);
+        return new PojoEndpoint(bus, port, context, target, httpTransportFactory, bindings);
     }
 }

Modified: openejb/trunk/openejb/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java?rev=1355123&r1=1355122&r2=1355123&view=diff
==============================================================================
--- openejb/trunk/openejb/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java (original)
+++ openejb/trunk/openejb/server/openejb-webservices/src/main/java/org/apache/openejb/server/webservices/WsService.java Thu Jun 28 19:26:12 2012
@@ -195,7 +195,7 @@ public abstract class WsService implemen
 
     protected abstract void destroyEjbWsContainer(String deploymentId);
 
-    protected abstract HttpListener createPojoWsContainer(URL moduleBaseUrl, PortData port, String serviceId, Class target, Context context, String contextRoot) throws Exception;
+    protected abstract HttpListener createPojoWsContainer(URL moduleBaseUrl, PortData port, String serviceId, Class target, Context context, String contextRoot, Map<String, Object> bindings) throws Exception;
 
     protected abstract void destroyPojoWsContainer(String serviceId);
 
@@ -339,10 +339,11 @@ public abstract class WsService implemen
                 Collection<Injection> injections = webContext.getInjections();
                 Context context = webContext.getJndiEnc();
                 Class target = classLoader.loadClass(servlet.servletClass);
+                final Map<String, Object> bindings = webContext.getBindings();
 
                 PortData port = WsBuilder.toPortData(portInfo, injections, moduleBaseUrl, classLoader);
 
-                HttpListener container = createPojoWsContainer(moduleBaseUrl, port, portInfo.serviceLink, target, context, webApp.contextRoot);
+                HttpListener container = createPojoWsContainer(moduleBaseUrl, port, portInfo.serviceLink, target, context, webApp.contextRoot, bindings);
 
                 if (wsRegistry != null) {
                     // give servlet a reference to the webservice container

Modified: openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java?rev=1355123&r1=1355122&r2=1355123&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java (original)
+++ openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java Thu Jun 28 19:26:12 2012
@@ -85,6 +85,7 @@ import org.omg.CORBA.ORB;
 import javax.ejb.spi.HandleDelegate;
 import javax.el.ELResolver;
 import javax.naming.Context;
+import javax.naming.InitialContext;
 import javax.naming.NamingException;
 import javax.persistence.EntityManagerFactory;
 import javax.servlet.ServletContext;
@@ -745,6 +746,7 @@ public class TomcatWebAppBuilder impleme
 
                 // add WebDeploymentInfo to ContainerSystem
                 final WebContext webContext = new WebContext(appContext);
+                webContext.setJndiEnc(new InitialContext());
                 webContext.setClassLoader(classLoader);
                 webContext.setId(webAppInfo.moduleId);
                 webContext.setContextRoot(webAppInfo.contextRoot);