Author: dkulp
Date: Thu Aug 22 19:35:11 2013
New Revision: 1516554
URL: http://svn.apache.org/r1516554
Log:
Throw some more useful exceptions if it's not CXF that is picked up
Modified:
cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/CXFService.java
Modified:
cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/CXFService.java
URL:
http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/CXFService.java?rev=1516554&r1=1516553&r2=1516554&view=diff
==============================================================================
---
cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/CXFService.java
(original)
+++
cxf/trunk/rt/frontend/jaxws/src/main/java/org/apache/cxf/jaxws/CXFService.java
Thu Aug 22 19:35:11 2013
@@ -24,6 +24,7 @@ import java.net.URL;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;
+import javax.xml.ws.WebServiceException;
import javax.xml.ws.WebServiceFeature;
import javax.xml.ws.spi.ServiceDelegate;
@@ -60,10 +61,15 @@ public abstract class CXFService extends
private ServiceImpl findDelegate() {
for (Field f : ReflectionUtil.getDeclaredFields(Service.class)) {
if (ServiceDelegate.class.equals(f.getType())) {
- return ReflectionUtil.accessDeclaredField(f, this,
ServiceImpl.class);
+ ServiceDelegate del = ReflectionUtil.accessDeclaredField(f,
this, ServiceDelegate.class);
+ if (del instanceof ServiceImpl) {
+ return (ServiceImpl)del;
+ }
+ throw new WebServiceException("Delegate of class " +
del.getClass() + " is not a CXF delegate. "
+ + " Check the classpath to make
sure CXF is loaded first.");
}
}
- throw null;
+ throw new WebServiceException("Could not find CXF service delegate");
}
}