Hi All,

I have written an axis 1.4 client for a web service and it was working
properly, returning a response earlier.
Recently the web service url is protected with windows authentication. A pop
up is appearing for windows domain, username and password if I type the url
in internet explorer.

I have updated the client to have NTLM authentication. I have modified the
client-config.wsdd file in "org.apache.axis.client" package for this to use
"CommonsHttpSender" instead of "HttpSender" and in the client I am setting
the "domain\\username" and "password" for call object. The web service
itself have an authentication for which I am including the header part
containing the authentication information.

The java code for client is as follows:

String Username = "XXX";
String Pswd = "XXXXX";
String Authentication = "ARSystem";
String Locale  = "en_US";
String timeZone = "GMT";
Service service = new Service();
                
Call call = (Call)service.createCall();
URL url = new
URL("http://nxprd01/arsys/services/ARService?server=devrmd04.unix.gsm1900.org&webService=UserCARE";);
call.setUsername("domain\\username");
call.setPassword("Password");
call.setTargetEndpointAddress(url);     
                
try {
        SOAPHeaderElement Helement = new
SOAPHeaderElement("http://www.w3.org/2001/XMLSchema","AuthenticationInfo";);
        SOAPElement element;
        element = Helement.addChildElement("userName");
        element.addTextNode(Username);
        element = Helement.addChildElement("password");
        element.addTextNode(Pswd);
        element = Helement.addChildElement("authentication");
        element.addTextNode(Authentication);
        element = Helement.addChildElement("locale");
        element.addTextNode(Locale);
        element = Helement.addChildElement("timeZone");
        element.addTextNode(timeZone);
                        
        call.addHeader(Helement);

     }
        catch(Exception e)
        {
                System.out.println("Exception during authentication....." +
e.getMessage());
        }
                //call.setEncodingStyle("UTF-8");
        call.setOperationName(new javax.xml.namespace.QName("urn:UserCARE",
"OpCreate"));
        
        String acct_Creator = null;
                String application_License = null;
                String computed_Grp_List ="8051;";
                String creator = "ssurane1";
                String default_Notify_Mechanism = 
Default_Notify_MechanismType._Email;
                String department ="EIT";
                String email_Address= "[EMAIL PROTECTED]";
                String employeeID= "P1234455";

                String first_Name ="Sreekanth";
                String flashboard_License_Type = 
Flashboard_License_TypeType._None;
                String full_Name = "Sreekanth Suraneni";
                String full_Text_License_Type = 
Full_Text_License_TypeType._None;
                String group_List = "8051;";
                String last_Name = "Suraneni";

                String license_Type = License_TypeType._value2;
                String login_Name = "ssurane1";
                String manager = "Manager Me";
                String office = "Tampa Data Center";
                String office_Phone = "615-718-7129";
                String password = "xxxxx";
                String PCS_Phone = "615-718-7129";
                String primary_Group = "8051";
                String samson_ID = "sam001";
                String status = StatusType._Active;
                String TCS_Name = "xxxxx";
                String title = "xxxxxx";
                String training_ID = "11233";

                
                System.out.println("Before Invoke......................");

                // For OpCreate

                call.addParameter("Acct_Creator", XMLType.XSD_STRING, 
ParameterMode.IN);
                call.addParameter("Application_License", XMLType.XSD_STRING,
ParameterMode.IN); //
                call.addParameter("Computed_Grp_List", XMLType.XSD_STRING,
ParameterMode.IN);
                call.addParameter("Creator", XMLType.XSD_STRING, 
ParameterMode.IN);
                call.addParameter("Default_Notify_Mechanism", 
XMLType.XSD_STRING,
ParameterMode.IN);
                call.addParameter("Department", XMLType.XSD_STRING, 
ParameterMode.IN);
                call.addParameter("Email_Address", XMLType.XSD_STRING, 
ParameterMode.IN);

                call.addParameter("employeeID", XMLType.XSD_STRING,     
ParameterMode.IN); //
                call.addParameter("First_Name", XMLType.XSD_STRING, 
ParameterMode.IN);
                call.addParameter("Flashboard_License_Type", XMLType.XSD_STRING,
ParameterMode.IN);
                call.addParameter("Full_Name", XMLType.XSD_STRING, 
ParameterMode.IN); //
                call.addParameter("Full_Text_License_Type", XMLType.XSD_STRING,
ParameterMode.IN);
                call.addParameter("Group_List", XMLType.XSD_STRING, 
ParameterMode.IN);

                call.addParameter("Last_Name", XMLType.XSD_STRING, 
ParameterMode.IN);
                call.addParameter("License_Type", XMLType.XSD_STRING, 
ParameterMode.IN);
                call.addParameter("Login_Name", XMLType.XSD_STRING, 
ParameterMode.IN);
                call.addParameter("Manager", XMLType.XSD_STRING, 
ParameterMode.IN);
                call.addParameter("Office", XMLType.XSD_STRING, 
ParameterMode.IN);
                call.addParameter("Office_Phone", XMLType.XSD_STRING, 
ParameterMode.IN);
//
                call.addParameter("Password", XMLType.XSD_STRING, 
ParameterMode.IN);
                call.addParameter("PCS_Phone", XMLType.XSD_STRING, 
ParameterMode.IN);
                call.addParameter("Primary_Group", XMLType.XSD_STRING, 
ParameterMode.IN);
                call.addParameter("Samson_ID", XMLType.XSD_STRING, 
ParameterMode.IN);
                
                call.addParameter("Status", XMLType.XSD_STRING, 
ParameterMode.IN);
                call.addParameter("TCS_Name", XMLType.XSD_STRING, 
ParameterMode.IN);
                call.addParameter("Title", XMLType.XSD_STRING, 
ParameterMode.IN);
                call.addParameter("Training_ID", XMLType.XSD_STRING, 
ParameterMode.IN);
                call.setReturnType(XMLType.XSD_STRING);
                
                System.out.println("Before invoke*****");
                
                Object _resp = call.invoke(new Object[] { acct_Creator,
application_License,  computed_Grp_List,  creator,
                                                          
default_Notify_Mechanism, department, email_Address, employeeID,
                                                          first_Name, 
flashboard_License_Type,
full_Name,full_Text_License_Type,
                                                          group_List, 
last_Name, license_Type,  login_Name,  manager, office,
office_Phone, 
                                                          password, PCS_Phone, 
primary_Group, samson_ID, status, TCS_Name,
title, 
                                                          training_ID 
                                                        });
                

                System.out.println(_resp);


I am getting a premature end of file exception in the output as follows.

- Unable to find required classes (javax.activation.DataHandler and
javax.mail.internet.MimeMultipart). Attachment support is disabled.
Before Invoke......................
Before invoke*****
- ntlm authentication scheme selected
AxisFault
 faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
 faultSubcode: 
 faultString: org.xml.sax.SAXParseException: Premature end of file.
 faultActor: 
 faultNode: 
 faultDetail: 
        {http://xml.apache.org/axis/}hostname:NXPRDWSRIT01

org.xml.sax.SAXParseException: Premature end of file.
        at
org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222)
        at
org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129)
        at
org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
        at org.apache.crimson.parser.Parser2.maybeElement(Unknown Source)
        at org.apache.crimson.parser.Parser2.content(Unknown Source)
        at org.apache.crimson.parser.Parser2.maybeElement(Unknown Source)
        at org.apache.crimson.parser.Parser2.content(Unknown Source)
        at org.apache.crimson.parser.Parser2.maybeElement(Unknown Source)
        at org.apache.crimson.parser.Parser2.parseInternal(Unknown Source)
        at org.apache.crimson.parser.Parser2.parse(Unknown Source)
        at org.apache.crimson.parser.XMLReaderImpl.parse(Unknown Source)
        at javax.xml.parsers.SAXParser.parse(Unknown Source)
        at
org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
        at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
        at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
        at
org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
        at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
        at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
        at org.apache.axis.client.Call.invoke(Call.java:2767)
        at org.apache.axis.client.Call.invoke(Call.java:2443)
        at org.apache.axis.client.Call.invoke(Call.java:2366)
        at org.apache.axis.client.Call.invoke(Call.java:1812)
        at UserCARE.client.NewTestClient.main(NewTestClient.java:169)

I have recorded the SOAP request using the TCPMON tool and here is the soap
request which is going to the server (pasting the request exactly as it
appears in tcpmon tool):

POST
/arsys/services/ARService?server=devrmd04.unix.gsm1900.org&webService=UserCARE
HTTP/1.1
Content-Type: text/xml; charset=utf-8
SOAPAction: ""
User-Agent: Axis/1.4
Host: 127.0.0.1:9876
Transfer-Encoding: chunked


8d8
<?xml version="1.0" encoding="UTF-8"?>
   <soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
      <soapenv:Header>
         <xsd:AuthenticationInfo
soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next";
soapenv:mustUnderstand="0">
            <xsd:userName>XXX</xsd:userName>
            <xsd:password>XXXXXX</xsd:password>
            <xsd:authentication>ARSystem</xsd:authentication>
            <xsd:locale>en_US</xsd:locale>
            <xsd:timeZone>GMT</xsd:timeZone>
         </xsd:AuthenticationInfo>
      </soapenv:Header>
      <soapenv:Body>
         <ns1:OpCreate
soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
xmlns:ns1="urn:UserCARE">
            <Acct_Creator xsi:type="xsd:string" xsi:nil="true"/>
            <Application_License xsi:type="xsd:string" xsi:nil="true"/>
            <Computed_Grp_List
xsi:type="xsd:string">8051;</Computed_Grp_List>
            <Creator xsi:type="xsd:string">ssurane1</Creator>
            <Default_Notify_Mechanism
xsi:type="xsd:string">Email</Default_Notify_Mechanism>
            <Department xsi:type="xsd:string">EIT</Department>
            <Email_Address
xsi:type="xsd:string">[EMAIL PROTECTED]</Email_Address>
            <employeeID xsi:type="xsd:string">P1234455</employeeID>
            <First_Name xsi:type="xsd:string">Sreekanth</First_Name>
            <Flashboard_License_Type
xsi:type="xsd:string">None</Flashboard_License_Type>
            <Full_Name xsi:type="xsd:string">Sreekanth Suraneni</Full_Name>
            <Full_Text_License_Type
xsi:type="xsd:string">None</Full_Text_License_Type>
            <Group_List xsi:type="xsd:string">8051;</Group_List>
            <Last_Name xsi:type="xsd:string">Suraneni</Last_Name>
            <License_Type xsi:type="xsd:string">Fixed</License_Type>
            <Login_Name xsi:type="xsd:string">ssurane1</Login_Name>
            <Manager xsi:type="xsd:string">Manager Me</Manager>
            <Office xsi:type="xsd:string">Tampa Data Center</Office>
            <Office_Phone xsi:type="xsd:string">615-718-7129</Office_Phone>
            <Password xsi:type="xsd:string">xxxxx</Password>
            <PCS_Phone xsi:type="xsd:string">615-718-7129</PCS_Phone>
            <Primary_Group xsi:type="xsd:string">8051</Primary_Group>
            <Samson_ID xsi:type="xsd:string">sam001</Samson_ID>
            <Status xsi:type="xsd:string">Active</Status>
            <TCS_Name xsi:type="xsd:string">xxxxx</TCS_Name>
            <Title xsi:type="xsd:string">xxxxxx</Title>
            <Training_ID xsi:type="xsd:string">11233</Training_ID>
         </ns1:OpCreate>
      </soapenv:Body>
   </soapenv:Envelope>0


I request you to please help me in resolving this issue.

Thanks,
Suraneni




-- 
View this message in context: 
http://www.nabble.com/Axis-1.4-web-service-client-with-NTLM-authentication%2C-getting-%22premature-end-of-file%22-exception-tp16270117p16270117.html
Sent from the Axis - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to