Index: src/main/java/com/sun/jersey/spi/spring/container/servlet/SpringServlet.java
===================================================================
--- src/main/java/com/sun/jersey/spi/spring/container/servlet/SpringServlet.java (revision 5823)
+++ src/main/java/com/sun/jersey/spi/spring/container/servlet/SpringServlet.java (working copy)
@@ -21,24 +21,25 @@
*/
package com.sun.jersey.spi.spring.container.servlet;
-import com.sun.jersey.spi.spring.container.SpringComponentProviderFactory;
-import com.sun.jersey.api.core.DefaultResourceConfig;
+import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
+import javax.servlet.ServletException;
+
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.web.context.ConfigurableWebApplicationContext;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
import org.springframework.web.context.support.XmlWebApplicationContext;
+import com.sun.jersey.api.core.DefaultResourceConfig;
import com.sun.jersey.api.core.ResourceConfig;
import com.sun.jersey.core.spi.component.ioc.IoCComponentProviderFactory;
import com.sun.jersey.spi.container.WebApplication;
import com.sun.jersey.spi.container.servlet.ServletContainer;
import com.sun.jersey.spi.container.servlet.WebConfig;
-import java.util.Map;
-import javax.servlet.ServletException;
+import com.sun.jersey.spi.spring.container.SpringComponentProviderFactory;
/**
* A servlet or filter for deploying root resource classes with Spring
@@ -153,7 +154,7 @@
final ConfigurableWebApplicationContext ctx = new XmlWebApplicationContext();
ctx.setParent(getDefaultContext());
ctx.setServletContext(getServletContext());
- ctx.setConfigLocation(contextConfigLocation);
+ ctx.setConfigLocations(new String[]{contextConfigLocation});
ctx.refresh();
return ctx;
Index: src/main/java/com/sun/jersey/spi/spring/container/SpringComponentProviderFactory.java
===================================================================
--- src/main/java/com/sun/jersey/spi/spring/container/SpringComponentProviderFactory.java (revision 5823)
+++ src/main/java/com/sun/jersey/spi/spring/container/SpringComponentProviderFactory.java (working copy)
@@ -39,7 +39,9 @@
import java.lang.annotation.Annotation;
import java.util.Arrays;
import java.util.Collection;
+import java.util.HashMap;
import java.util.Iterator;
+import java.util.Map;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -50,7 +52,6 @@
import org.springframework.beans.factory.config.BeanDefinition;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ConfigurableApplicationContext;
-import org.springframework.util.ClassUtils;
import com.sun.jersey.api.core.ResourceConfig;
import com.sun.jersey.api.spring.Autowire;
@@ -61,8 +62,6 @@
import com.sun.jersey.core.spi.component.ioc.IoCInstantiatedComponentProvider;
import com.sun.jersey.core.spi.component.ioc.IoCManagedComponentProvider;
import com.sun.jersey.spi.inject.Inject;
-import java.util.HashMap;
-import java.util.Map;
/**
* The Spring-based {@link IoCComponentProviderFactory}.
@@ -86,7 +85,7 @@
private void register(ResourceConfig rc, ConfigurableApplicationContext springContext) {
String[] names = BeanFactoryUtils.beanNamesIncludingAncestors(springContext);
for (String name : names) {
- Class> type = ClassUtils.getUserClass(springContext.getType(name));
+ Class> type = getUserClass(springContext.getType(name));
if (ResourceConfig.isProviderClass(type)) {
LOGGER.info("Registering Spring bean, " + name +
", of type " + type.getName() +
@@ -254,7 +253,7 @@
boolean inheritedNames = false;
String beanName = null;
for (String name : names) {
- Class> beanType = ClassUtils.getUserClass(springContext.getType(name));
+ Class> beanType = getUserClass(springContext.getType(name));
inheritedNames = c.isAssignableFrom(beanType);
@@ -330,4 +329,18 @@
}
return sb.toString();
}
+
+ /** The CGLIB class separator character "$$" */
+ private static final String CGLIB_CLASS_SEPARATOR = "$$";
+
+ /**
+ * Return the user-defined class for the given class: usually simply the given
+ * class, but the original class in case of a CGLIB-generated subclass.
+ * @param clazz the class to check
+ * @return the user-defined class
+ */
+ public static Class getUserClass(Class clazz) {
+ return (clazz != null && clazz.getName().indexOf(CGLIB_CLASS_SEPARATOR) != -1 ?
+ clazz.getSuperclass() : clazz);
+ }
}
Index: pom.xml
===================================================================
--- pom.xml (revision 5823)
+++ pom.xml (working copy)
@@ -177,7 +177,7 @@
- 2.0.5
+ 2.0.1
[2.5.2,3)