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 se...@apache.org on 2008/03/14 17:20:51 UTC
svn commit: r637145 - in /webservices/axis2/trunk/c/src/core/transport/http:
common/http_worker.c server/apache2/apache2_worker.c
Author: senaka
Date: Fri Mar 14 09:20:46 2008
New Revision: 637145
URL: http://svn.apache.org/viewvc?rev=637145&view=rev
Log:
Fixing JIRA Issue AXIS2C-1007
Modified:
webservices/axis2/trunk/c/src/core/transport/http/common/http_worker.c
webservices/axis2/trunk/c/src/core/transport/http/server/apache2/apache2_worker.c
Modified: webservices/axis2/trunk/c/src/core/transport/http/common/http_worker.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/src/core/transport/http/common/http_worker.c?rev=637145&r1=637144&r2=637145&view=diff
==============================================================================
--- webservices/axis2/trunk/c/src/core/transport/http/common/http_worker.c (original)
+++ webservices/axis2/trunk/c/src/core/transport/http/common/http_worker.c Fri Mar 14 09:20:46 2008
@@ -451,7 +451,7 @@
axis2_http_simple_request_get_content_type(simple_request, env),
content_length, soap_action_str, url_external_form);
}
- if (AXIS2_FALSE == status && (is_put ||
+ if (AXIS2_FAILURE == status && (is_put ||
axis2_msg_ctx_get_doing_rest(msg_ctx, env)))
{
axis2_http_header_t *cont_len = NULL;
Modified: webservices/axis2/trunk/c/src/core/transport/http/server/apache2/apache2_worker.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/src/core/transport/http/server/apache2/apache2_worker.c?rev=637145&r1=637144&r2=637145&view=diff
==============================================================================
--- webservices/axis2/trunk/c/src/core/transport/http/server/apache2/apache2_worker.c (original)
+++ webservices/axis2/trunk/c/src/core/transport/http/server/apache2/apache2_worker.c Fri Mar 14 09:20:46 2008
@@ -291,12 +291,35 @@
(axis2_char_t *)
req_url));
}
-
if (AXIS2_FALSE == processed)
{
axis2_char_t *wsdl = NULL;
- wsdl = strstr((axis2_char_t *) req_url, AXIS2_REQUEST_WSDL);
- if (wsdl)
+ axis2_bool_t is_services_path = AXIS2_FALSE;
+ if (!is_delete)
+ {
+ axis2_char_t *temp = NULL;
+ temp = strstr(axutil_url_get_path(request_url, env), AXIS2_REQUEST_URL_PREFIX);
+ if (temp)
+ {
+ temp += strlen(AXIS2_REQUEST_URL_PREFIX);
+ if (*temp == '/')
+ {
+ temp++;
+ }
+ if (!*temp || *temp == '?' || *temp == '#')
+ {
+ is_services_path = AXIS2_TRUE;
+ }
+ }
+ }
+ wsdl = strstr(url_external_form, AXIS2_REQUEST_WSDL);
+ if (is_services_path)
+ {
+ body_string =
+ axis2_http_transport_utils_get_services_html(env, conf_ctx);
+ request->content_type = "text/xml";
+ }
+ else if (!is_delete && wsdl)
{
body_string =
axis2_http_transport_utils_get_services_static_wsdl(env,
@@ -305,14 +328,21 @@
*)
req_url);
request->content_type = "text/xml";
-
+
+ }
+ else if (env->error->error_number == AXIS2_ERROR_SVC_OR_OP_NOT_FOUND)
+ {
+ body_string =
+ axis2_http_transport_utils_get_not_found(env, conf_ctx);
+ request->content_type = "text/xml";
+ request->status = 404;
}
else
{
- body_string = axis2_http_transport_utils_get_services_html(env,
- conf_ctx);
- request->content_type = "text/html";
-
+ body_string =
+ axis2_http_transport_utils_get_services_html(env, conf_ctx);
+ request->content_type = "text/xml";
+ request->status = HTTP_INTERNAL_SERVER_ERROR;
}
if (body_string)
@@ -321,7 +351,6 @@
}
send_status = OK;
}
-
}
else if (M_POST == request->method_number || M_PUT == request->method_number)
{
@@ -340,7 +369,31 @@
content_type, content_length,
soap_action, (axis2_char_t *) req_url);
}
- if (status == AXIS2_FAILURE)
+ if (AXIS2_FAILURE == status && (M_PUT == request->method_number ||
+ axis2_msg_ctx_get_doing_rest(msg_ctx, env)))
+ {
+ if (env->error->error_number == AXIS2_ERROR_SVC_OR_OP_NOT_FOUND)
+ {
+ body_string =
+ axis2_http_transport_utils_get_not_found(env, conf_ctx);
+ request->content_type = "text/xml";
+ request->status = 404;
+ }
+ else
+ {
+ body_string =
+ axis2_http_transport_utils_get_services_html(env, conf_ctx);
+ request->content_type = "text/xml";
+ request->status = HTTP_INTERNAL_SERVER_ERROR;
+ }
+
+ if (body_string)
+ {
+ body_string_len = axutil_strlen(body_string);
+ }
+ send_status = OK;
+ }
+ else if (status == AXIS2_FAILURE)
{
axis2_msg_ctx_t *fault_ctx = NULL;
axis2_char_t *fault_code = NULL;
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org