Unable to configure Rampart

I have developed a webserice in Axis2 1.5 which will be called by a Java client. The client needs to pass username and password in SOAP Header. For this I am using Rampart 1.5.

Till now I have followed these steps

1. Copy rampart-1.5.mar and rahas-1.5.mar in modules directory of both client and service.
2. Copy Rampart jars in the lib directory of both service and client.
3. In client following was done
      -- Following was added to axis2.xml
      <module ref="rampart" />
      <parameter name="OutflowSecurity">
            <action>
                  <items>UsernameToken</items>
                  <user>apache</user>
                  <passwordCallbackClass>
                        com.examples.www.wsdl.resumeservice_wsdl.ClientCredentialsHandler
                  </passwordCallbackClass>
            </action>
      </parameter>

      -- Following is ClientCredentialsHandler.java

public class ClientCredentialsHandler implements CallbackHandler {
      public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
            for (int i = 0; i < callbacks.length; i++) {
                  WSPasswordCallback pwcb = (WSPasswordCallback) callbacks[i];
                  if (pwcb.getIdentifer().equals("apache")) {
                        pwcb.setPassword("password");
                        return;
                  }
            }
      }
}

      
      

4. In the webservice following was done
      -- Following was added to services.xml
               <module ref="rampart" />
            <parameter name="InflowSecurity">
                  <action>
                        <items>UsernameToken</items>
                        <passwordCallbackClass>
                              com.examples.www.wsdl.handlers.ServiceCredentialsHandler
                        </passwordCallbackClass>
                  </action>
            </parameter>



      -- Following is ServiceCredentialsHandler.java
public class ServiceCredentialsHandler implements CallbackHandler  {
    public void handle(Callback[] callbacks) throws IOException,UnsupportedCallbackException {
       System.out.println("Inside Callbalc handler ----");
        for (int i = 0; i < callbacks.length; i++) {
            System.out.println("This is callback --"+i);
            //When the server side need to authenticate the user
            WSPasswordCallback pwcb = (WSPasswordCallback)callbacks[i];
            System.out.println("Identifier is ---"+pwcb.getIdentifer());
            System.out.println("Password is ---"+pwcb.getPassword());
            if(pwcb.getIdentifer().equals("apache") && pwcb.getPassword().equals("password")) {
                System.out.println("Username and password verified");
                  return;
            } else {
                throw new UnsupportedCallbackException(callbacks[i], "check failed");
            }
               
        }
    }

When I execute the client, it gives me the following error      

Exception in thread "main" org.apache.axis2.AxisFault: Unable to engage module : rampart
      at org.apache.axis2.client.ServiceClient.engageModule(ServiceClient.java:357)
      at com.examples.www.wsdl.resumeservice_wsdl.ResumeClient.main(ResumeClient.java:44)

Please help me to resolve this.
Thank you
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="ResumeService" targetNamespace="http://www.examples.com/wsdl/ResumeService.wsdl" xmlns:tns="http://www.examples.com/wsdl/ResumeService.wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
  <wsdl:types>
    <xsd:schema targetNamespace="http://www.examples.com/wsdl/ResumeService.wsdl">
			<xsd:element name="getResumeId">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="firstName" type="xsd:string"/>
						<xsd:element name="lastName" type="xsd:string"/>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="getResumeIdResponse">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="resumeId" type="xsd:string"/>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="getResumeDetails">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="resumeId" type="xsd:string"/>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="getResumeDetailsResponse">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="firstName" type="xsd:string"/>
						<xsd:element name="lastName" type="xsd:string"/>
						<xsd:element name="address" type="tns:addressType"/>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>

			<xsd:complexType name="addressType">
				<xsd:sequence>
					<xsd:element name="city" type="xsd:string"/>
					<xsd:element name="state" type="xsd:string"/>
					<xsd:element name="country" type="xsd:string"/>
					<xsd:element name="mobile" type="xsd:string"/>
					<xsd:element name="email" type="xsd:string"/>
				</xsd:sequence>
			</xsd:complexType>

			<xsd:element name="getAllResumeIdsResponse">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element maxOccurs="unbounded" name="allResumeIds" type="xsd:string"/>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>

			<xsd:element name="updateResumeDetails">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="resumeId" type="xsd:string"/>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="updateResumeDetailsResponse">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="updateStatus" type="xsd:boolean"/>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>

			<xsd:element name="getResumeContent">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="resumeId" type="xsd:string">
						</xsd:element>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="getResumeContentResponse">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="content" type="xsd:base64Binary">
						</xsd:element>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
			
			<xsd:element name="updateResumeContent">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="resumeId" type="xsd:string">
						</xsd:element>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="updateResumeContentResponse">
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="content" type="xsd:base64Binary">
						</xsd:element>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
		</xsd:schema>
  </wsdl:types>
  <wsdl:message name="getAllResumeIdsResponse">
    <wsdl:part name="parameters" element="tns:getAllResumeIdsResponse">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="getResumeIdResponse">
    <wsdl:part name="parameters" element="tns:getResumeIdResponse">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="getResumeIdRequest">
    <wsdl:part name="parameters" element="tns:getResumeId">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="getResumeContentResponse">
    <wsdl:part name="parameters" element="tns:getResumeContentResponse">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="updateResumeDetailsRequest">
    <wsdl:part name="parameters" element="tns:updateResumeDetails">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="getAllResumeIdsRequest">
  </wsdl:message>
  <wsdl:message name="updateResumeContentResponse">
    <wsdl:part name="parameters" element="tns:updateResumeContentResponse">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="getResumeContentRequest">
    <wsdl:part name="parameters" element="tns:getResumeContent">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="updateResumeDetailsResponse">
    <wsdl:part name="parameters" element="tns:updateResumeDetailsResponse">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="updateResumeContentRequest">
    <wsdl:part name="parameters" element="tns:updateResumeContent">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="getResumeDetailsRequest">
    <wsdl:part name="parameters" element="tns:getResumeDetails">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="getResumeDetailsResponse">
    <wsdl:part name="parameters" element="tns:getResumeDetailsResponse">
    </wsdl:part>
  </wsdl:message>
  <wsdl:portType name="ResumeService">
    <wsdl:operation name="getResumeId">
      <wsdl:input message="tns:getResumeIdRequest">
    </wsdl:input>
      <wsdl:output message="tns:getResumeIdResponse">
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getResumeDetails">
      <wsdl:input message="tns:getResumeDetailsRequest">
    </wsdl:input>
      <wsdl:output message="tns:getResumeDetailsResponse">
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getAllResumeIds">
      <wsdl:input message="tns:getAllResumeIdsRequest">
    </wsdl:input>
      <wsdl:output message="tns:getAllResumeIdsResponse">
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="updateResumeDetails">
      <wsdl:input message="tns:updateResumeDetailsRequest">
    </wsdl:input>
      <wsdl:output message="tns:updateResumeDetailsResponse">
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getResumeContent">
      <wsdl:input message="tns:getResumeContentRequest">
    </wsdl:input>
      <wsdl:output message="tns:getResumeContentResponse">
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="updateResumeContent">
      <wsdl:input message="tns:updateResumeContentRequest">
    </wsdl:input>
      <wsdl:output message="tns:updateResumeContentResponse">
    </wsdl:output>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="ResumeServiceSOAP" type="tns:ResumeService">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="getResumeId">
      <soap:operation soapAction="http://www.examples.com/wsdl/ResumeService.wsdl/getResumeId"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getResumeDetails">
      <soap:operation soapAction="http://www.examples.com/wsdl/ResumeService.wsdl/getResumeDetails"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getAllResumeIds">
      <soap:operation soapAction="http://www.examples.com/wsdl/ResumeService.wsdl/getAllResumeIds"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="updateResumeDetails">
      <soap:operation soapAction="http://www.examples.com/wsdl/ResumeService.wsdl/updateResumeDetails"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getResumeContent">
      <soap:operation soapAction="http://www.examples.com/wsdl/ResumeService.wsdl/getResumeContent"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="updateResumeContent">
      <soap:operation soapAction="http://www.examples.com/wsdl/ResumeService.wsdl/updateResumeContent"/>
      <wsdl:input>
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="ResumeService">
    <wsdl:port name="ResumeServiceSOAP" binding="tns:ResumeServiceSOAP">
      <soap:address location="http://www.example.org/"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>

Open in new window

ank9Asked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

ank9Author Commented:
I added the following to eclipse "Runtime Configuration" in VM Parameters
-Daxis2.repo="C:\ServiceTestClient1\WebContent\WEB-INF\modules"  
-Daxis2.xml="C:\ServiceTestClient1\WebContent\WEB-INF\conf\axis2.xml"
 
Now it is giving the following error

Exception in thread "main" org.apache.axis2.AxisFault: The system is attempting to engage a module that is not available: addressing
at org.apache.axis2.engine.AxisConfiguration.engageModule(AxisConfiguration.java:506)
at org.apache.axis2.engine.AxisConfiguration.engageGlobalModules(AxisConfiguration.java:633)
So when the runtime configuration is not there, it is not able to find rampart (but is able to find addressing).
When runtime configurations are put, it is not able to find even addressing module.
 
 
 
0
Siva Prasanna KumarPrincipal Solutions ArchitectCommented:
PLease see my comment on one of your other questions, just provide  me the war let me see :)
0
ank9Author Commented:
I changed the VM parameters to
-Daxis2.repo="C:\ServiceTestClient1\WebContent\WEB-INF"
It seems that we need to specify the folder containng modules directory, rather than modules directory itself.
Now I am getting the following error
It seems the client handler is not getting called as I cannot see the sysouts that were a part of the client handler.
Is there any setting that I need to do?
 

Exception in thread "main" org.apache.axis2.AxisFault: WSDoAllReceiver: Incoming message does not contain required Security header
	at org.apache.axis2.util.Utils.getInboundFaultFromMessageContext(Utils.java:517)
	at org.apache.axis2.description.OutInAxisOperationClient.handleResponse(OutInAxisOperation.java:371)
	at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:417)
	at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229)
	at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165)
	at com.examples.www.wsdl.resumeservice_wsdl.ResumeServiceStub.updateResumeDetails(ResumeServiceStub.java:241)
	at com.examples.www.wsdl.resumeservice_wsdl.ResumeClient.updateResume(ResumeClient.java:123)
	at com.examples.www.wsdl.resumeservice_wsdl.ResumeClient.main(ResumeClient.java:59)

Open in new window

0
Get expert help—faster!

Need expert help—fast? Use the Help Bell for personalized assistance getting answers to your important questions.

ank9Author Commented:
The problem was that the correct axis2.xml was not getting loaded.
I added the following VM parameter and now we have gone past that error
-Daxis2.xml="C:\ServiceTestClient1\WebContent\WEB-INF\conf\axis2.xml"
 
At the server side, now I am getting the following error
Inside Service Callback handler ----
Callback count --0
Identifier on service handler is ---apache
Password on service handler  is ---null
Password Type --http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username
-token-profile-1.0#PasswordDigest
[ERROR]
org.apache.axis2.AxisFault
        at org.apache.rampart.handler.WSDoAllReceiver.processMessage(WSDoAllRece
iver.java:92)
        at org.apache.rampart.handler.WSDoAllHandler.invoke(WSDoAllHandler.java:
72)
        at org.apache.axis2.engine.Phase.invoke(Phase.java:318)
        at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:251)
        at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:160)
        at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostReq
uest(HTTPTransportUtils.java:167)
        at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:1
42)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)


Server side handler code is as follows

 public class ServiceCredentialsHandler implements CallbackHandler  {
    public void handle(Callback[] callbacks) throws IOException,UnsupportedCallbackException {
       System.out.println("Inside Service Callback handler ----");
        for (int i = 0; i < callbacks.length; i++) {
            System.out.println("Callback count --"+i);
            //When the server side need to authenticate the user
            WSPasswordCallback pwcb = (WSPasswordCallback)callbacks[i];
            System.out.println("Identifier on service handler is ---"+pwcb.getIdentifer());
            System.out.println("Password on service handler  is ---"+pwcb.getPassword());
            System.out.println("Password Type --"+pwcb.getPasswordType());
            if(pwcb.getIdentifer().equals("apache") && pwcb.getPassword().equals("password")) {
                System.out.println("Username and password verified");
             return;
            } else {
                throw new UnsupportedCallbackException(callbacks[i], "check failed");
            }
               
        }
    }
 
Here is the SOAP request (fetched using tcmpmon)

POST /axis2/services/ResumeService HTTP/1.1
Content-Type: multipart/related; boundary=MIMEBoundaryurn_uuid_AFAA147A2444C21E831270798603663; type="application/xop+xml"; start="<0.urn:uuid:AFAA147A2444C21E831270798603664@apache.org>"; start-info="text/xml"
SOAPAction: "http://www.examples.com/wsdl/ResumeService.wsdl/updateResumeDetails"
User-Agent: Axis2
Host: 127.0.0.1:1234
Transfer-Encoding: chunked
653
--MIMEBoundaryurn_uuid_AFAA147A2444C21E831270798603663
Content-Type: application/xop+xml; charset=UTF-8; type="text/xml"
Content-Transfer-Encoding: binary
Content-ID: <0.urn:uuid:AFAA147A2444C21E831270798603664@apache.org>
   <?xml version='1.0' encoding='UTF-8'?>
      <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
         <soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
            <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" soapenv:mustUnderstand="1">
               <wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="UsernameToken-1">
                  <wsse:Username>apache</wsse:Username>
                  <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest">tYNQb4f+uZi1bObThkPW1DNyl5w=</wsse:Password>
                  <wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">ds4UeQHEhfsLGcPGLTUQyw==</wsse:Nonce>
                  <wsu:Created>2010-04-09T07:36:43.515Z</wsu:Created>
               </wsse:UsernameToken>
            </wsse:Security>
            <wsa:To>http://localhost:1234/axis2/services/ResumeService</wsa:To>
            <wsa:MessageID>urn:uuid:AFAA147A2444C21E831270798602412</wsa:MessageID>
            <wsa:Action>http://www.examples.com/wsdl/ResumeService.wsdl/updateResumeDetails</wsa:Action>
         </soapenv:Header>
         <soapenv:Body>
            <ns1:updateResumeDetails xmlns:ns1="http://www.examples.com/wsdl/ResumeService.wsdl">
               <resumeId>2</resumeId>
            </ns1:updateResumeDetails>
         </soapenv:Body>
      </soapenv:Envelope>--MIMEBoundaryurn_uuid_AFAA147A2444C21E831270798603663--0
 
and here is the SOAP response

HTTP/1.1 500 Internal Server Error
Server: Apache-Coyote/1.1
Content-Type: text/xml;charset=UTF-8
Transfer-Encoding: chunked
Date: Fri, 09 Apr 2010 07:36:44 GMT
Connection: close
1f3
<?xml version='1.0' encoding='UTF-8'?>
   <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
      <soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
         <wsa:Action>http://www.w3.org/2005/08/addressing/soap/fault</wsa:Action>
         <wsa:RelatesTo>urn:uuid:AFAA147A2444C21E831270798602412</wsa:RelatesTo>
      </soapenv:Header>
      <soapenv:Body>
         <soapenv:Fault>
            <faultcode>soapenv:Server</faultcode>
            <faultstring>unknown</faultstring>
            <detail />
         </soapenv:Fault>
      </soapenv:Body>
   </soapenv:Envelope>
0
0
ank9Author Commented:
I changed the server side handler to following

public class ServiceCredentialsHandler implements CallbackHandler  {
    public void handle(Callback[] callbacks) throws IOException,UnsupportedCallbackException {
       System.out.println("Inside Service Callback handler ----");
        for (int i = 0; i < callbacks.length; i++) {
            System.out.println("Callback count --"+i);
            //When the server side need to authenticate the user
            WSPasswordCallback pwcb = (WSPasswordCallback)callbacks[i];
            System.out.println("Identifier on service handler is ---"+pwcb.getIdentifer());
            System.out.println("Password on service handler  is ---"+pwcb.getPassword());
            System.out.println("Password Type --"+pwcb.getPasswordType());
          /*  if(pwcb.getIdentifer().equals("apache") && pwcb.getPassword().equals("password")) {
                System.out.println("Username and password verified");
                return;
            } else {
                throw new UnsupportedCallbackException(callbacks[i], "check failed");
            }*/
            pwcb.setPassword("password");
               
        }
    }


}


Now I am getting the following error


Resume ID is getResumeContent --1
Handler called ===========================
USername is ---apache
Setting password-----
org.apache.axis2.AxisFault: java.io.IOException: End of Stream, but boundary not found
	at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
	at com.examples.www.wsdl.resumeservice_wsdl.ResumeServiceStub.fromOM(ResumeServiceStub.java:8526)
	at com.examples.www.wsdl.resumeservice_wsdl.ResumeServiceStub.getResumeContent(ResumeServiceStub.java:514)
	at com.examples.www.wsdl.resumeservice_wsdl.ResumeClient.getResumeContent(ResumeClient.java:69)
	at com.examples.www.wsdl.resumeservice_wsdl.ResumeClient.main(ResumeClient.java:60)
Caused by: org.apache.axiom.om.OMException: java.io.IOException: End of Stream, but boundary not found
	at org.apache.axiom.attachments.impl.PartFactory.createPart(PartFactory.java:172)
	at org.apache.axiom.attachments.Attachments.getPart(Attachments.java:672)
	at org.apache.axiom.attachments.Attachments.getNextPartDataHandler(Attachments.java:590)
	at org.apache.axiom.attachments.Attachments.getDataHandler(Attachments.java:345)
	at org.apache.axiom.soap.impl.builder.MTOMStAXSOAPModelBuilder.getDataHandler(MTOMStAXSOAPModelBuilder.java:116)
	at com.examples.www.wsdl.resumeservice_wsdl.ResumeServiceStub$GetResumeContentResponse$Factory.parse(ResumeServiceStub.java:3256)
	at com.examples.www.wsdl.resumeservice_wsdl.ResumeServiceStub.fromOM(ResumeServiceStub.java:8471)
	... 3 more
Caused by: java.io.IOException: End of Stream, but boundary not found
	at org.apache.axiom.attachments.BoundaryPushbackInputStream.read(BoundaryPushbackInputStream.java:258)
	at org.apache.axiom.attachments.MIMEBodyPartInputStream.read(MIMEBodyPartInputStream.java:87)
	at org.apache.axiom.attachments.utils.BAAOutputStream.receive(BAAOutputStream.java:101)
	at org.apache.axiom.attachments.impl.BufferUtils.inputStream2BAAOutputStream(BufferUtils.java:217)
	at org.apache.axiom.attachments.impl.BufferUtils.inputStream2OutputStream(BufferUtils.java:78)
	at org.apache.axiom.attachments.impl.PartFactory.createPart(PartFactory.java:136)
	... 9 more

Open in new window

0
ank9Author Commented:
The problem was because of  tcpmon. I closed tcpmon, now it is working fine.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Siva Prasanna KumarPrincipal Solutions ArchitectCommented:
Oh ank9, that's nice, I am really sorry actually was extremely busy as one my project is going live today, really didn't get enough time to look in to your question.

Thanks.
0
ank9Author Commented:
Please close this question
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Web Languages and Standards

From novice to tech pro — start learning today.