Title: RE: Internal Server Error - help

What is your environment like? Platform, App Server...

-----Original Message-----
From: Ying Foong [mailto:[EMAIL PROTECTED]]
Sent: Monday, January 19, 2004 12:19 AM
To: [EMAIL PROTECTED]
Subject: Internal Server Error - help


Hello,

i'm using Axis 1.2alpha and it was working fine with the codes below. But
recently it returns me an "Internal Server Error" 500, I did not change
anything on the code but it suddenly down.
can somebody help me in this issue? it will be greatly appreciated.

i sent the soap document below:
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<env:Header>
<test:echoOk env:mustUnderstand="1"
xmlns:test="http://example.org/ts-tests">foo</test:echoOk>
</env:Header>
<env:Body>
<test:echoOk xmlns:test="http://example.org/ts-tests">foo</test:echoOk>
</env:Body>
</env:Envelope>

server-side code
import org.w3c.dom.*;
import org.apache.axis.message.*;
import org.apache.axis.*;
//import javax.xml.soap.SOAPBody;
//import javax.xml.soap.SOAPHeader;
import javax.xml.soap.Name;
import java.util.Iterator;



public class MessageService {

        private String prefix = "test";
        private String body = "Body";
        private String header = "Header";
        private String role = "role";
        private String mustUnderstand = "mustUnderstand";

        private Node rootNode;
        private Element rootElement;
        //private String content = "";

        private String nodeAURI = "http://example.org/ts-tests/A";
        private String nodeBURI = "http://example.org/ts-tests/B";
        private String nodeCURI = "http://example.org/ts-tests/C";
        private String defaultNodeURI = "http://example.org/ts-tests";
        private String xsdURI = "http://example.org/ts-tests/xsd";
        private String ultimateReceiverURI =
"http://www.w3.org/2003/05/soap-envelope/role/ultimateReceiver";
        private String nextRoleURI =
"http://www.w3.org/2003/05/soap-envelope/role/next";
        private String noneRoleURI =
"http://www.w3.org/2003/05/soap-envelope/role/none";

        private String encodingStyle = "encodingStyle";
        private static final String XMLNS = "xmlns";
        private String enc = "enc";
        private String xsd = "xsd";
        private String xsi = "xsi";
        private static final String interopURI = "http://soapinterop.org/";
        private static final String xsdinteropURI = "http://soapinterop.org/xsd";
        private static final String NS_ENVOLD =
"http://schemas.xmlsoap.org/soap/envelope/";
        private static final String NS_ENCOLD =
"http://schemas.xmlsoap.org/soap/encoding/";
        private static final String NS_ENV =
"http://www.w3.org/2003/05/soap-envelope";
        private static final String NS_ENC =
"http://www.w3.org/2003/05/soap-encoding";
        private static final String NS_XSD = "http://www.w3.org/2001/XMLSchema";
        private static final String NS_XSI =
"http://www.w3.org/2001/XMLSchema-instance";

        private String[] headerBlocks = {"echoOk", "responseOk",
"Ignore","requiredHeader", "DataHolder",
"concatAndForwardEchoOk","concatAndForwardEchoOkArg1",
"concatAndForwardEchoOkArg2","validateCountryCode",
"validateCountryCodeFault","echoResolvedRef", "responseResolvedRef"};

        private String[] bodyBlocks = {"echoOk", "responseOk", "echoHeader",
"echoHeaderResponse"};

        private String[] RPCMethods = {"returnVoid", "echoStruct",
"echoStructArray", "echoStructAsSimpleTypes",
                                                                        "echoSimpleTypesAsStruct", "echoNestedArray", "echoFloatArray",

                                                                        "echoStringArray",      "echoIntegerArray", "echoBase64",

"echoBoolean",
                                                                        "echoDate", "echoDecimal", "echoFloat", "echoString",

"countItems",
                                                                        "isNil"};

    public void Envelope(SOAPEnvelope reqenv, SOAPEnvelope resenv){

        try{

                this.rootElement = reqenv.getAsDOM();
                this.rootNode = rootElement;
                Node envNode = rootNode.getParentNode();
                String envPrefix = envNode.getFirstChild().getPrefix();
                String env = envNode.getFirstChild().getLocalName();

                Name headerName = resenv.createName("responseOk", "test",
"http://example.org/ts-tests");
                SOAPHeaderElement headerElement = new SOAPHeaderElement(headerName);
                resenv.addHeader(headerElement);
                headerElement.addTextNode(getTextValue(rootElement, envPrefix, "Header",
"test", "echoOk"));
        }

        SOAPBodyElement reqBodyElement = reqenv.getFirstBody();
        Name reqBodyName = reqBodyElement.getElementName();

                Name resBodyName = resenv.createName("responseOk", "test",
"http://example.org/ts-tests");
                SOAPBodyElement resBodyElement = new SOAPBodyElement(resBodyName);
                resenv.addBodyElement(resBodyElement);
                resBodyElement.addTextNode(getTextValue(rootElement, envPrefix,
"Body","test", "echoOk"));

        }catch (Exception e){
                e.printStackTrace();
        }
}

private String getTextValue(String SOAPPrefix, String SOAPLocalName, String
prefix, String localName){

        String content = "";
        NodeList headerList = rootElement.getElementsByTagName(SOAPPrefix + ":" +
SOAPLocalName);
        NodeList childList = headerList.item(0).getChildNodes();
        for (int k = 0; k < childList.getLength(); k++){
                Node childNode = childList.item(k); // to shorten the object name
                if (childNode.getNodeType() == childNode.ELEMENT_NODE &&
childNode.getPrefix().compareTo(prefix) == 0 &&
childNode.getLocalName().compareTo(localName)== 0){
                        if (childNode.getFirstChild().getNodeType() == childNode.TEXT_NODE){
                content += childList.item(k).getNodeName() + k;
                                }
                        }
                }
                return content;
        }
}
Phoon Ying Foong
Software Engineer
Data Security Systems Solutions Pte Ltd.
phone(office):(+65)62959102
phone(mobile):(+65)94854045
Email: [EMAIL PROTECTED]

Reply via email to