You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by iv...@apache.org on 2002/12/17 05:09:38 UTC
cvs commit: xml-cocoon2/src/java/org/apache/cocoon/generation WebServiceProxyGenerator.java
ivelin 2002/12/16 20:09:36
Modified: src/java/org/apache/cocoon/generation
WebServiceProxyGenerator.java
Log:
applied patch by
tc@hist.umn.edu (Tony Collen)
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=14916
Revision Changes Path
1.5 +40 -11 xml-cocoon2/src/java/org/apache/cocoon/generation/WebServiceProxyGenerator.java
Index: WebServiceProxyGenerator.java
===================================================================
RCS file: /home/cvs/xml-cocoon2/src/java/org/apache/cocoon/generation/WebServiceProxyGenerator.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- WebServiceProxyGenerator.java 5 Dec 2002 10:32:57 -0000 1.4
+++ WebServiceProxyGenerator.java 17 Dec 2002 04:09:36 -0000 1.5
@@ -50,6 +50,12 @@
*/
package org.apache.cocoon.generation;
+import java.io.IOException;
+import java.io.StringReader;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.Map;
+
import org.apache.avalon.excalibur.xml.Parser;
import org.apache.avalon.framework.component.ComponentException;
import org.apache.avalon.framework.parameters.Parameters;
@@ -60,19 +66,15 @@
import org.apache.cocoon.environment.Session;
import org.apache.cocoon.environment.SourceResolver;
import org.apache.commons.httpclient.HttpMultiClient;
+import org.apache.commons.httpclient.HttpUrlMethod;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.UrlGetMethod;
+import org.apache.commons.httpclient.methods.UrlPostMethod;
import org.apache.excalibur.source.Source;
import org.apache.excalibur.source.SourceException;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;
-import java.io.IOException;
-import java.io.StringReader;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.Map;
-
/**
*
* The WebServiceProxyGenerator is intended to:
@@ -97,6 +99,8 @@
*
*
* @author <a href="mailto:ivelin@apache.org">Ivelin Ivanov</a>, June 30, 2002
+ * @author <a href="mailto:tc@hist.umn.edu">Tony Collen</a>, December 2, 2002
+ *
*/
public class WebServiceProxyGenerator extends ComposerGenerator
{
@@ -118,6 +122,8 @@
throw SourceUtil.handle("Unable to resolve " + super.source, se);
}
+ configuredHttpMethod = par.getParameter("wsproxy-method", METHOD_GET);
+
httpClient = getHttpClient();
}
@@ -189,10 +195,21 @@
{
try
{
+
- UrlGetMethod method = new UrlGetMethod( this.source );
-
- method.setUseDisk(false);
+ // @todo: Write a log entry detailing which httpMethod was configured
+
+ HttpUrlMethod method = null;
+
+ // check which method (GET or POST) to use.
+ if ( this.configuredHttpMethod.equalsIgnoreCase( METHOD_POST ) )
+ {
+ method = new UrlPostMethod( this.source );
+ ((UrlPostMethod)method).setUseDisk(false);
+ } else {
+ method = new UrlGetMethod( this.source );
+ ((UrlGetMethod)method).setUseDisk(false);
+ }
// this should probably be exposed as a sitemap option
method.setFollowRedirects( true );
@@ -233,8 +250,12 @@
int htcode = httpClient.executeMethod( method );
- // @todo: Maybe we should implement some
// meaningful reaction to htcodes different than 200
+ // @todo: We should probably be logging this, as well.
+ if (htcode >= 400) {
+ throw new ProcessingException( "The remote returned error " + htcode + " when attempting to access remote URL:" + method.getUrl() );
+ }
+
// @todo: fix-me
// This sleep() is a temporary workaround
@@ -246,7 +267,7 @@
int startOfXML = ret.indexOf("<?xml");
if (startOfXML == -1)
{ // No xml?!
- throw new ProcessingException("Invalid (non XML) response returned from: " + method.getUrl() );
+ throw new ProcessingException("Invalid (non XML) response returned from remote URL: " + method.getUrl() );
}
ret.substring(startOfXML);
@@ -296,5 +317,13 @@
// private attributes section
private static String HTTP_CLIENT = "HTTP_CLIENT";
private HttpMultiClient httpClient;
+
+// for GET/POST configurability
+private static String METHOD_GET = "GET";
+private static String METHOD_POST = "POST";
+
+// default to GET
+private String configuredHttpMethod = METHOD_GET;
+
} // class
----------------------------------------------------------------------
In case of troubles, e-mail: webmaster@xml.apache.org
To unsubscribe, e-mail: cocoon-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: cocoon-cvs-help@xml.apache.org