Hi, After hours of research and testing I've got a solution. I don't know if my solution is the 'right'-one, but it works. Maybe you could explain how to do things better? The follwing C/S Code shows how to send and recieve custom HTTP-Header and custom SOAP-Header.
Configuration: - Axis 1.4 - Eclipse Galileo - Tomcat 6 Development-steps: - Install Eclipse and bind Tomcat into Eclipse - Build new Dynamic Web-Project (Server) - Add Axis libs - Create POJO - Use Eclipse to generate the Webservice in the same Project - Use Eclipse to generate the Client (another Project) - Configure the Eclipse TCP-Monitor - Configure the generated endpoints for TCP-Monitoring - Run Server as Webapplication in Tomcat - Run Client as Application Note that the follwing webservice is a little bit different to the Post before! (I created a new Test-Environment) // Service System.out.println("Server: Start"); try{ MessageContext mc = MessageContext.getCurrentContext(); mc.setMaintainSession(true); // enable axis session /** * Read properties */ Iterator i = mc.getAllPropertyNames(); while (i.hasNext()){ System.out.println("Server: found Property -> "+i.next()); } System.out.println("Server: found Username -> "+mc.getUsername()); System.out.println("Server: found Pasword -> "+mc.getPassword()); System.out.println("Server: found Cookie -> "+mc.getProperty(HTTPConstants.HEADER_COOKIE)); HttpServletRequest request = (HttpServletRequest)mc.getProperty(HTTPConstants.MC_HTTP_SERVLETREQUEST); String testProperty = (String) request.getHeader("testProperty"); System.out.println("Server: found testProperty on HTTP-Header -> "+testProperty); /** * Read Session */ System.out.println("Server: MaintainSession -> "+mc.getMaintainSession()); System.out.println("Server: Session ID -> "+mc.getSession()); /** * Set properties */ HttpServletResponse response = (HttpServletResponse)mc.getProperty(HTTPConstants.MC_HTTP_SERVLETRESPONSE); response.addHeader("testProperty2", "testvalue123fromserver"); mc.setProperty(HTTPConstants.MC_HTTP_SERVLETRESPONSE, response); /** * Set Session properties */ mc.getSession().set("testServerSessionProperty", "11234test"); /** * Set SOAP-Header */ SOAPEnvelope env = mc.getResponseMessage().getSOAPEnvelope(); SOAPHeaderElement headerElement = new org.apache.axis.message.SOAPHeaderElement("http://webservice.cuba/headers", "myHeader", "test12346"); env.addHeader(headerElement); /** * Read SOAP-Header (source https://svn.apache.org/repos/asf/webservices/rampart/scratch/java/test-module/modules/chamanthi-jar/src/main/java/org/apache/rampart/chamanthi/handler/Receiver.java) */ env = mc.getRequestMessage().getSOAPEnvelope(); SOAPHeaderElement header = env.getHeaderByName("http://webservice.cuba/headers", "myHeader"); if (header != null) System.out.println("Server: SOAP-header -> "+header.getValue()); } catch (Exception e) { e.printStackTrace(); // error output } System.out.println("Server: Finished"); return true; // WS return true // Client 1 (for HTTP-Header) System.out.println("Client: Start"); try { /** * Simple WS-Call (source: http://ws.apache.org/axis/java/user-guide.html#ConsumingWebServicesWithAxis) * + set http-Header * + read http-Header */ String endpoint = "http://localhost:80/CubaDummyServer/services/CubaAxisTestService"; Service service = new Service(); service.setMaintainSession(true); // Enable Session-support Call call = (Call) service.createCall(); call.setTargetEndpointAddress( new java.net.URL(endpoint) ); call.setOperationName(new QName("http://webservice.cuba", "doSomething") ); // set http-Header MessageContext msgContext = call.getMessageContext(); Hashtable userHeaderTable = (Hashtable) msgContext.getProperty(HTTPConstants.REQUEST_HEADERS); if (userHeaderTable == null) { userHeaderTable = new Hashtable(); } userHeaderTable.put("testProperty", "testvalue123"); call.setProperty(HTTPConstants.REQUEST_HEADERS, userHeaderTable); String ret = (String) call.invoke( new Object[] { } ); // call with no params // read http-Header (source: http://www.5341.com/msg/196651.html) String[] testProperty = call.getMessageContext().getResponseMessage().getMimeHeaders().getHeader("testproperty2"); System.out.println("Client: found testProperty2 on HTTP-Header -> " + testProperty[0]); System.out.println("Client: Server returned: "+ret); } catch (Exception e) { e.printStackTrace(); // DEBUG output } System.out.println("Client: End"); // Client 2 (for SOAP-Header) System.out.println("Client: Start"); try { /** * Simple WS-Call (source: http://ws.apache.org/axis/java/user-guide.html#ConsumingWebServicesWithAxis) * + set SOAP-Header * + read SOAP-Header */ String endpoint = "http://localhost:80/CubaDummyServer/services/CubaAxisTestService"; Service service = new Service(); service.setMaintainSession(true); // enable axis session-support CubaAxisTestServiceServiceLocator locator = new CubaAxisTestServiceServiceLocator(); Call call = (Call) service.createCall(); call.setTargetEndpointAddress( new java.net.URL(endpoint) ); call.setOperationName(new QName("http://webservice.cuba", "doSomething") ); // set soap-header SOAPHeaderElement header = new SOAPHeaderElement("http://webservice.cuba/headers", "myHeader"); header.setValue("myHeader"); call.addHeader(header); String ret = (String) call.invoke( new Object[] { } ); // call service // read soap-header SOAPEnvelope env = call.getResponseMessage().getSOAPEnvelope(); header = env.getHeaderByName("http://webservice.cuba/headers", "myHeader"); System.out.println("Client: Server returned -> "+ret); System.out.println("Client: SOAP-header returned -> "+header.getValue()); } catch (Exception e) { e.printStackTrace(); // DEBUG output } System.out.println("Client: End"); The monitored results: request with SOAP-Header POST /CubaDummyServer/services/CubaAxisTestService HTTP/1.0 Content-Type: text/xml; charset=utf-8 Accept: application/soap+xml, application/dime, multipart/related, text/* User-Agent: Axis/1.4 Host: localhost:80 Cache-Control: no-cache Pragma: no-cache SOAPAction: "" Content-Length: 663 <?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><ns1:myHeader soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next" soapenv:mustUnderstand="0" xsi:type="soapenc:string" xmlns:ns1="http://webservice.cuba/headers" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">myHeader</ns1:myHeader></soapenv:Header><soapenv:Body><ns2:doSomething soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns2="http://webservice.cuba"/></soapenv:Body></soapenv:Envelope> response with SOAP-Header HTTP/1.1 200 OK Server: Apache-Coyote/1.1 testProperty2: testvalue123fromserver Set-Cookie: JSESSIONID=B13B1B3BA3A2AC1549DCA663CEE72BD7; Path=/CubaDummyServer Content-Type: text/xml;charset=utf-8 Date: Wed, 23 Dec 2009 13:08:30 GMT Connection: close <?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><ns1:myHeader soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next" soapenv:mustUnderstand="0" xmlns:ns1="http://webservice.cuba/headers">test12346</ns1:myHeader></soapenv:Header><soapenv:Body><doSomethingResponse xmlns="http://webservice.cuba"><doSomethingReturn>true</doSomethingReturn></doSomethingResponse></soapenv:Body></soapenv:Envelope> request with HTTP-Header POST /CubaDummyServer/services/CubaAxisTestService HTTP/1.0 Content-Type: text/xml; charset=utf-8 Accept: application/soap+xml, application/dime, multipart/related, text/* User-Agent: Axis/1.4 Host: localhost:80 Cache-Control: no-cache Pragma: no-cache SOAPAction: "" Content-Length: 380 testProperty: testvalue123 <?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:Body><ns1:doSomething soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://webservice.cuba"/></soapenv:Body></soapenv:Envelope> response with HTTP-Header HTTP/1.1 200 OK Server: Apache-Coyote/1.1 testProperty2: testvalue123fromserver Set-Cookie: JSESSIONID=2B9B1B4DBE7411434A9DCFE83554B434; Path=/CubaDummyServer Content-Type: text/xml;charset=utf-8 Date: Wed, 23 Dec 2009 13:08:08 GMT Connection: close <?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><ns1:myHeader soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next" soapenv:mustUnderstand="0" xmlns:ns1="http://webservice.cuba/headers">test12346</ns1:myHeader></soapenv:Header><soapenv:Body><doSomethingResponse xmlns="http://webservice.cuba"><doSomethingReturn>true</doSomethingReturn></doSomethingResponse></soapenv:Body></soapenv:Envelope> ___________________________________________________________ Preisknaller: WEB.DE DSL Flatrate für nur 16,99 Euro/mtl.! http://produkte.web.de/go/02/