You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ga...@apache.org on 2008/12/05 16:52:10 UTC
svn commit: r723773 -
/geronimo/server/branches/2.1/plugins/axis2/geronimo-axis2-ejb/src/main/java/org/apache/geronimo/axis2/ejb/EJBMessageReceiver.java
Author: gawor
Date: Fri Dec 5 07:52:09 2008
New Revision: 723773
URL: http://svn.apache.org/viewvc?rev=723773&view=rev
Log:
check all interfaces for javax.xml.ws.Provider interface. Based on patch from Ivan (GERONIMO-4450)
Modified:
geronimo/server/branches/2.1/plugins/axis2/geronimo-axis2-ejb/src/main/java/org/apache/geronimo/axis2/ejb/EJBMessageReceiver.java
Modified: geronimo/server/branches/2.1/plugins/axis2/geronimo-axis2-ejb/src/main/java/org/apache/geronimo/axis2/ejb/EJBMessageReceiver.java
URL: http://svn.apache.org/viewvc/geronimo/server/branches/2.1/plugins/axis2/geronimo-axis2-ejb/src/main/java/org/apache/geronimo/axis2/ejb/EJBMessageReceiver.java?rev=723773&r1=723772&r2=723773&view=diff
==============================================================================
--- geronimo/server/branches/2.1/plugins/axis2/geronimo-axis2-ejb/src/main/java/org/apache/geronimo/axis2/ejb/EJBMessageReceiver.java (original)
+++ geronimo/server/branches/2.1/plugins/axis2/geronimo-axis2-ejb/src/main/java/org/apache/geronimo/axis2/ejb/EJBMessageReceiver.java Fri Dec 5 07:52:09 2008
@@ -161,28 +161,22 @@
}
private Class<?> getProviderType() {
- Class providerType = null;
-
Type[] giTypes = this.serviceImplClass.getGenericInterfaces();
for (Type giType : giTypes) {
- ParameterizedType paramType = null;
- try {
- paramType = (ParameterizedType)giType;
- } catch (ClassCastException e) {
- throw ExceptionFactory.makeWebServiceException(
- "Provider based SEI Class has to implement javax.xml.ws.Provider as javax.xml.ws.Provider<String>, javax.xml.ws.Provider<SOAPMessage>, javax.xml.ws.Provider<Source> or javax.xml.ws.Provider<JAXBContext>");
- }
- Class interfaceName = (Class)paramType.getRawType();
-
- if (interfaceName == javax.xml.ws.Provider.class) {
- if (paramType.getActualTypeArguments().length > 1) {
- throw ExceptionFactory.makeWebServiceException(
- "Provider cannot have more than one Generic Types defined as Per JAX-WS Specification");
+ if (giType instanceof ParameterizedType) {
+ ParameterizedType paramType = (ParameterizedType)giType;
+ Class interfaceName = (Class)paramType.getRawType();
+ if (interfaceName == javax.xml.ws.Provider.class) {
+ if (paramType.getActualTypeArguments().length > 1) {
+ throw ExceptionFactory.makeWebServiceException(
+ "Provider cannot have more than one Generic Types defined as per JAX-WS Specification");
+ }
}
- providerType = (Class)paramType.getActualTypeArguments()[0];
+ return (Class)paramType.getActualTypeArguments()[0];
}
}
- return providerType;
+ throw ExceptionFactory.makeWebServiceException(
+ "Provider has to implement javax.xml.ws.Provider interface as javax.xml.ws.Provider<DataSource>, javax.xml.ws.Provider<SOAPMessage>, javax.xml.ws.Provider<Source> or javax.xml.ws.Provider<JAXBContext>");
}
}