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);