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/08/01 21:42:48 UTC
svn commit: r681801 - in /geronimo/server/branches/2.1/plugins:
axis2/geronimo-axis2/src/main/java/org/apache/geronimo/axis2/
cxf/geronimo-cxf/src/main/java/org/apache/geronimo/cxf/
Author: gawor
Date: Fri Aug 1 12:42:47 2008
New Revision: 681801
URL: http://svn.apache.org/viewvc?rev=681801&view=rev
Log:
do not return wsdl for web services using http binding
Modified:
geronimo/server/branches/2.1/plugins/axis2/geronimo-axis2/src/main/java/org/apache/geronimo/axis2/Axis2WebServiceContainer.java
geronimo/server/branches/2.1/plugins/axis2/geronimo-axis2/src/main/java/org/apache/geronimo/axis2/AxisServiceGenerator.java
geronimo/server/branches/2.1/plugins/axis2/geronimo-axis2/src/main/java/org/apache/geronimo/axis2/WSDLQueryHandler.java
geronimo/server/branches/2.1/plugins/cxf/geronimo-cxf/src/main/java/org/apache/geronimo/cxf/CXFEndpoint.java
geronimo/server/branches/2.1/plugins/cxf/geronimo-cxf/src/main/java/org/apache/geronimo/cxf/CXFWebServiceContainer.java
Modified: geronimo/server/branches/2.1/plugins/axis2/geronimo-axis2/src/main/java/org/apache/geronimo/axis2/Axis2WebServiceContainer.java
URL: http://svn.apache.org/viewvc/geronimo/server/branches/2.1/plugins/axis2/geronimo-axis2/src/main/java/org/apache/geronimo/axis2/Axis2WebServiceContainer.java?rev=681801&r1=681800&r2=681801&view=diff
==============================================================================
--- geronimo/server/branches/2.1/plugins/axis2/geronimo-axis2/src/main/java/org/apache/geronimo/axis2/Axis2WebServiceContainer.java (original)
+++ geronimo/server/branches/2.1/plugins/axis2/geronimo-axis2/src/main/java/org/apache/geronimo/axis2/Axis2WebServiceContainer.java Fri Aug 1 12:42:47 2008
@@ -307,10 +307,12 @@
}
}
- protected void processGETRequest(Request request, Response response, AxisService service, MessageContext msgContext) throws Exception{
- if (request.getURI().getQuery() != null &&
- (request.getURI().getQuery().startsWith("wsdl") ||
- request.getURI().getQuery().startsWith("xsd"))) {
+ protected void processGETRequest(Request request, Response response, AxisService service, MessageContext msgContext) throws Exception{
+ if (AxisServiceGenerator.isHTTP(service)) {
+ processURLRequest(request, response, service, msgContext);
+ } else if (request.getURI().getQuery() != null &&
+ (request.getURI().getQuery().startsWith("wsdl") ||
+ request.getURI().getQuery().startsWith("xsd"))) {
// wsdl or xsd request
if (portInfo.getWsdlFile() != null && !portInfo.getWsdlFile().equals("")) {
Modified: geronimo/server/branches/2.1/plugins/axis2/geronimo-axis2/src/main/java/org/apache/geronimo/axis2/AxisServiceGenerator.java
URL: http://svn.apache.org/viewvc/geronimo/server/branches/2.1/plugins/axis2/geronimo-axis2/src/main/java/org/apache/geronimo/axis2/AxisServiceGenerator.java?rev=681801&r1=681800&r2=681801&view=diff
==============================================================================
--- geronimo/server/branches/2.1/plugins/axis2/geronimo-axis2/src/main/java/org/apache/geronimo/axis2/AxisServiceGenerator.java (original)
+++ geronimo/server/branches/2.1/plugins/axis2/geronimo-axis2/src/main/java/org/apache/geronimo/axis2/AxisServiceGenerator.java Fri Aug 1 12:42:47 2008
@@ -313,5 +313,10 @@
return javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_BINDING.equals(desc.getBindingType()) ||
javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_MTOM_BINDING.equals(desc.getBindingType());
}
+
+ public static boolean isHTTP(AxisService service) {
+ EndpointDescription desc = AxisServiceGenerator.getEndpointDescription(service);
+ return javax.xml.ws.http.HTTPBinding.HTTP_BINDING.equals(desc.getBindingType());
+ }
}
Modified: geronimo/server/branches/2.1/plugins/axis2/geronimo-axis2/src/main/java/org/apache/geronimo/axis2/WSDLQueryHandler.java
URL: http://svn.apache.org/viewvc/geronimo/server/branches/2.1/plugins/axis2/geronimo-axis2/src/main/java/org/apache/geronimo/axis2/WSDLQueryHandler.java?rev=681801&r1=681800&r2=681801&view=diff
==============================================================================
--- geronimo/server/branches/2.1/plugins/axis2/geronimo-axis2/src/main/java/org/apache/geronimo/axis2/WSDLQueryHandler.java (original)
+++ geronimo/server/branches/2.1/plugins/axis2/geronimo-axis2/src/main/java/org/apache/geronimo/axis2/WSDLQueryHandler.java Fri Aug 1 12:42:47 2008
@@ -19,6 +19,7 @@
package org.apache.geronimo.axis2;
+import java.io.FileNotFoundException;
import java.io.OutputStream;
import java.net.MalformedURLException;
import java.net.URI;
@@ -76,19 +77,28 @@
public void writeResponse(String baseUri, String wsdlUri, OutputStream os) throws Exception {
- int idx = baseUri.toLowerCase().indexOf("?wsdl");
String base = null;
String wsdl = "";
String xsd = null;
+
+ int idx = baseUri.toLowerCase().indexOf("?wsdl");
if (idx != -1) {
- base = baseUri.substring(0, baseUri.toLowerCase().indexOf("?wsdl"));
- wsdl = baseUri.substring(baseUri.toLowerCase().indexOf("?wsdl") + 5);
+ base = baseUri.substring(0, idx);
+ wsdl = baseUri.substring(idx + 5);
if (wsdl.length() > 0) {
wsdl = wsdl.substring(1);
}
} else {
- base = baseUri.substring(0, baseUri.toLowerCase().indexOf("?xsd="));
- xsd = baseUri.substring(baseUri.toLowerCase().indexOf("?xsd=") + 5);
+ idx = baseUri.toLowerCase().indexOf("?xsd");
+ if (idx != -1) {
+ base = baseUri.substring(0, idx);
+ xsd = baseUri.substring(idx + 4);
+ if (xsd.length() > 0) {
+ xsd = xsd.substring(1);
+ }
+ } else {
+ throw new Exception("Invalid request: " + baseUri);
+ }
}
if (!mp.containsKey(wsdl)) {
@@ -107,12 +117,21 @@
if (xsd == null) {
Definition def = mp.get(wsdl);
+ if (def == null) {
+ throw new FileNotFoundException("WSDL not found: " + wsdl);
+ }
+
WSDLFactory factory = WSDLFactory.newInstance();
WSDLWriter writer = factory.newWSDLWriter();
rootElement = writer.getDocument(def).getDocumentElement();
} else {
SchemaReference si = smp.get(xsd);
+
+ if (si == null) {
+ throw new FileNotFoundException("Schema not found: " + xsd);
+ }
+
rootElement = si.getReferencedSchema().getElement();
}
Modified: geronimo/server/branches/2.1/plugins/cxf/geronimo-cxf/src/main/java/org/apache/geronimo/cxf/CXFEndpoint.java
URL: http://svn.apache.org/viewvc/geronimo/server/branches/2.1/plugins/cxf/geronimo-cxf/src/main/java/org/apache/geronimo/cxf/CXFEndpoint.java?rev=681801&r1=681800&r2=681801&view=diff
==============================================================================
--- geronimo/server/branches/2.1/plugins/cxf/geronimo-cxf/src/main/java/org/apache/geronimo/cxf/CXFEndpoint.java (original)
+++ geronimo/server/branches/2.1/plugins/cxf/geronimo-cxf/src/main/java/org/apache/geronimo/cxf/CXFEndpoint.java Fri Aug 1 12:42:47 2008
@@ -107,6 +107,10 @@
SOAPBinding.SOAP11HTTP_MTOM_BINDING.equals(implInfo.getBindingType());
}
+ public boolean isHTTP() {
+ return HTTPBinding.HTTP_BINDING.equals(implInfo.getBindingType());
+ }
+
public ServerImpl getServer() {
return (ServerImpl) server;
}
Modified: geronimo/server/branches/2.1/plugins/cxf/geronimo-cxf/src/main/java/org/apache/geronimo/cxf/CXFWebServiceContainer.java
URL: http://svn.apache.org/viewvc/geronimo/server/branches/2.1/plugins/cxf/geronimo-cxf/src/main/java/org/apache/geronimo/cxf/CXFWebServiceContainer.java?rev=681801&r1=681800&r2=681801&view=diff
==============================================================================
--- geronimo/server/branches/2.1/plugins/cxf/geronimo-cxf/src/main/java/org/apache/geronimo/cxf/CXFWebServiceContainer.java (original)
+++ geronimo/server/branches/2.1/plugins/cxf/geronimo-cxf/src/main/java/org/apache/geronimo/cxf/CXFWebServiceContainer.java Fri Aug 1 12:42:47 2008
@@ -85,8 +85,17 @@
}
protected void processGET(Request request, Response response) throws Exception {
- if (request.getParameter("xsd") != null || request.getParameter("XSD") != null) {
- getWsdl(request, response);
+ if (endpoint.isHTTP()) {
+ processPOST(request, response);
+ } else if (request.getParameter("wsdl") != null || request.getParameter("WSDL") != null ||
+ request.getParameter("xsd") != null || request.getParameter("XSD") != null) {
+ GeronimoQueryHandler queryHandler = new GeronimoQueryHandler(this.bus);
+ URI requestURI = request.getURI();
+ EndpointInfo ei = this.destination.getEndpointInfo();
+ OutputStream out = response.getOutputStream();
+ String baseUri = requestURI.toString();
+ response.setContentType("text/xml");
+ queryHandler.writeResponse(baseUri, null, ei, out);
} else if (endpoint.isSOAP11()) {
EndpointInfo ei = this.destination.getEndpointInfo();
response.setContentType("text/html");
@@ -111,13 +120,7 @@
}
public void getWsdl(Request request, Response response) throws Exception {
- GeronimoQueryHandler queryHandler = new GeronimoQueryHandler(this.bus);
- URI requestURI = request.getURI();
- EndpointInfo ei = this.destination.getEndpointInfo();
- OutputStream out = response.getOutputStream();
- String baseUri = requestURI.toString();
- response.setContentType("text/xml");
- queryHandler.writeResponse(baseUri, null, ei, out);
+ invoke(request, response);
}
public void destroy() {