You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by de...@apache.org on 2007/04/05 13:59:09 UTC
svn commit: r525802 - in
/webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2:
transport/http/HTTPWorker.java util/Counter.java
Author: deepal
Date: Thu Apr 5 04:59:08 2007
New Revision: 525802
URL: http://svn.apache.org/viewvc?view=rev&rev=525802
Log:
?xsd did not work when aar file is deploy with wsdl
- Made the counter class changes
Modified:
webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/http/HTTPWorker.java
webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/util/Counter.java
Modified: webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/http/HTTPWorker.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/http/HTTPWorker.java?view=diff&rev=525802&r1=525801&r2=525802
==============================================================================
--- webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/http/HTTPWorker.java (original)
+++ webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/transport/http/HTTPWorker.java Thu Apr 5 04:59:08 2007
@@ -23,6 +23,7 @@
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.context.OperationContext;
+import org.apache.axis2.deployment.DeploymentConstants;
import org.apache.axis2.description.AxisService;
import org.apache.axis2.engine.Handler.InvocationResponse;
import org.apache.axis2.transport.RequestResponseTransport;
@@ -30,14 +31,7 @@
import org.apache.axis2.transport.http.server.OutputBuffer;
import org.apache.axis2.transport.http.server.Worker;
import org.apache.axis2.transport.http.util.RESTUtil;
-import org.apache.http.Header;
-import org.apache.http.HttpEntity;
-import org.apache.http.HttpEntityEnclosingRequest;
-import org.apache.http.HttpException;
-import org.apache.http.HttpRequest;
-import org.apache.http.HttpResponse;
-import org.apache.http.HttpVersion;
-import org.apache.http.MethodNotSupportedException;
+import org.apache.http.*;
import org.apache.http.entity.ContentProducer;
import org.apache.http.entity.EntityTemplate;
import org.apache.http.entity.StringEntity;
@@ -45,7 +39,9 @@
import org.apache.http.message.BasicStatusLine;
import org.apache.ws.commons.schema.XmlSchema;
+import java.io.ByteArrayOutputStream;
import java.io.IOException;
+import java.io.InputStream;
import java.io.OutputStream;
import java.net.URI;
import java.util.HashMap;
@@ -185,9 +181,38 @@
response.setEntity(entity);
return;
} else {
- // no schema available by that name - send 404
- response.setStatusLine(new BasicStatusLine(ver, 404, "Schema Not Found!"));
- return;
+ final InputStream in = service.getClassLoader()
+ .getResourceAsStream(DeploymentConstants.META_INF + "/" + schemaName);
+ if (in != null) {
+ EntityTemplate entity = new EntityTemplate(new ContentProducer() {
+
+ public void writeTo(final OutputStream outstream) {
+ try {
+ boolean checkLength = true;
+ int length = Integer.MAX_VALUE;
+ int nextValue = in.read();
+ if (checkLength) length--;
+ while (-1 != nextValue && length >= 0) {
+ outstream.write(nextValue);
+ nextValue = in.read();
+ if (checkLength) length--;
+ }
+
+ outstream.flush();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ });
+ entity.setContentType("text/xml");
+ response.setEntity(entity);
+ return;
+ } else {
+ // no schema available by that name - send 404
+ response.setStatusLine(
+ new BasicStatusLine(ver, 404, "Schema Not Found!"));
+ return;
+ }
}
}
}
@@ -214,15 +239,15 @@
String contentType = processContentType(inentity, msgContext);
if (HTTPTransportUtils.isRESTRequest(contentType)) {
pi = RESTUtil.processXMLRequest(msgContext, inentity.getContent(),
- outbuffer.getOutputStream(), contentType);
+ outbuffer.getOutputStream(), contentType);
} else {
- String ip = (String)msgContext.getProperty(MessageContext.TRANSPORT_ADDR);
- if(ip!=null){
+ String ip = (String) msgContext.getProperty(MessageContext.TRANSPORT_ADDR);
+ if (ip != null) {
uri = ip + uri;
}
pi = HTTPTransportUtils.processHTTPPostRequest(msgContext, inentity.getContent(),
- outbuffer.getOutputStream(),
- contentType, soapAction, uri);
+ outbuffer.getOutputStream(),
+ contentType, soapAction, uri);
}
@@ -231,7 +256,7 @@
HttpEntity inentity = ((HttpEntityEnclosingRequest) request).getEntity();
String contentType = processContentType(inentity, msgContext);
pi = RESTUtil.processXMLRequest(msgContext, inentity.getContent(),
- outbuffer.getOutputStream(), contentType);
+ outbuffer.getOutputStream(), contentType);
} else if (method.equals(HTTPConstants.HEADER_DELETE)) {
outbuffer = copyCommonProperties(msgContext, request);
@@ -303,7 +328,7 @@
msgContext.setProperty(Constants.OUT_TRANSPORT_INFO, outbuffer);
msgContext.setTo(new EndpointReference(request.getRequestLine().getUri()));
msgContext.setProperty(RequestResponseTransport.TRANSPORT_CONTROL,
- new SimpleHTTPRequestResponseTransport());
+ new SimpleHTTPRequestResponseTransport());
return outbuffer;
}
@@ -325,18 +350,18 @@
private CountDownLatch responseReadySignal = new CountDownLatch(1);
RequestResponseTransportStatus status = RequestResponseTransportStatus.INITIAL;
AxisFault faultToBeThrownOut = null;
-
+
public void acknowledgeMessage(MessageContext msgContext) throws AxisFault {
//TODO: Once the core HTTP API allows us to return an ack before unwinding, then the should be fixed
signalResponseReady();
}
- public void awaitResponse() throws InterruptedException,AxisFault {
+ public void awaitResponse() throws InterruptedException, AxisFault {
status = RequestResponseTransportStatus.WAITING;
responseReadySignal.await();
-
- if (faultToBeThrownOut!=null)
- throw faultToBeThrownOut;
+
+ if (faultToBeThrownOut != null)
+ throw faultToBeThrownOut;
}
public void signalResponseReady() {
@@ -348,10 +373,10 @@
return status;
}
- public void signalFaultReady(AxisFault fault) {
- faultToBeThrownOut = fault;
- signalResponseReady();
- }
-
+ public void signalFaultReady(AxisFault fault) {
+ faultToBeThrownOut = fault;
+ signalResponseReady();
+ }
+
}
}
Modified: webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/util/Counter.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/util/Counter.java?view=diff&rev=525802&r1=525801&r2=525802
==============================================================================
--- webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/util/Counter.java (original)
+++ webservices/axis2/branches/java/1_2/modules/kernel/src/org/apache/axis2/util/Counter.java Thu Apr 5 04:59:08 2007
@@ -22,44 +22,9 @@
// Counter uses java.util.concurrent.atomic.AtomicLong if present,
// else falls back to the backport version
public class Counter {
- private static Class clazz;
- private static Method method;
- private Object counter;
+ private long value = 0L;
- static {
- try {
- clazz = Class.forName("java.util.concurrent.atomic.AtomicLong");
- } catch (ClassNotFoundException e) {
- try {
- clazz = Class.forName("edu.emory.mathcs.backport.java.util.concurrent.atomic.AtomicLong");
- } catch (ClassNotFoundException e1) {
- throw new RuntimeException(e1);
- }
- }
- try {
- method = clazz.getMethod("incrementAndGet", new Class[]{});
- } catch (NoSuchMethodException e) {
- throw new RuntimeException(e);
- }
- }
-
- public Counter() {
- try {
- counter = clazz.newInstance();
- } catch (InstantiationException e) {
- throw new RuntimeException(e);
- } catch (IllegalAccessException e) {
- throw new RuntimeException(e);
- }
- }
-
- public final synchronized long incrementAndGet() {
- try {
- return ((Long) method.invoke(counter, new Object[]{})).longValue();
- } catch (IllegalAccessException e) {
- throw new RuntimeException(e);
- } catch (InvocationTargetException e) {
- throw new RuntimeException(e);
- }
- }
+ public synchronized long incrementAndGet() {
+ return ++value;
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org