• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1254
  • Last Modified:

Emergency Java Soap Problem need help please!!!!!!!!

We need to get one info from a web service periodically.
 But this service is not works for .net clients Service address is : http://dgpys.teias.gov.tr/dgpys/services/EVDServis?wsdl 
There is a trick on the web service after adding the webservice client automatic generated code has a mistake :
 instead of this 172.16.0.37
 You need to write dgpys.teias.gov.tr
 We tryed the service connection on Stylus Studio 2010 XML Enterprise Suite and it worked perfect. For example we send some xml like :
<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
      <SOAP-ENV:Body>
            <dgp:login xmlns="" xmlns:dgp="http://ws.dgpys.deloitte.com">
                  <loginMessage>
                        <Password v="denmee"/>
                        <UserName v="denneme"/>
                  </loginMessage>
            </dgp:login>
      </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

And got an answer as this :

<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing"><soapenv:Header><wsa:ReplyTo><wsa:Address>http://www.w3.org/2005/08/addressing/none</wsa:Address><wsa:ReferenceParameters><axis2:ServiceGroupId xmlns:axis2="http://ws.apache.org/namespaces/axis2">urn:uuid:CBA8261DA843FDD4301284803860165</axis2:ServiceGroupId></wsa:ReferenceParameters></wsa:ReplyTo></soapenv:Header><soapenv:Body><LoginReport><Code v="-1"/><Text v="Authorization error!"/></LoginReport></soapenv:Body></soapenv:Envelope>



This is all what we need a successfull working sample . Because we could not figure it out what if it is an Axis or Axis2 or JA-WS Connection. That is all what we need a working sample about how you connect to the service and got this result.
0
3XLcom
Asked:
3XLcom
  • 5
  • 4
1 Solution
 
tom_sebastianCommented:
Here is a working example using spring-ws.

you need spring, spring-ws, and axiom OR use the attached a maven pom file get the dependency jars
WebServiceTest.java
pom.xml
0
 
tom_sebastianCommented:
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;

import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;

import org.springframework.ws.client.core.WebServiceTemplate;

public class WebServiceTest {

      /**
       * @param args
       */
      public static void main(String[] args) {
            System.err.println("Test");
            try {
                  String result = login("denneme", "denmee");
                  System.err.println(result);
            } catch (Exception e) {
                  e.printStackTrace();
            }
      

      }

      public static String login(String username, String password) throws Exception {
            WebServiceTemplate webService = new WebServiceTemplate();
            webService.setDefaultUri("http://dgpys.teias.gov.tr:80/dgpys/services/EVDServis");
            StringBuffer requestStr = new StringBuffer();
            requestStr.append("<dgp:login xmlns=\"\" xmlns:dgp=\"http://ws.dgpys.deloitte.com\">");
            requestStr.append("<loginMessage>");
            requestStr.append("<Password v=\"" + password + "\"/>");
            requestStr.append("<UserName v=\"" + username + "\"/>");
            requestStr.append("</loginMessage>");
            requestStr.append("</dgp:login>");
            Source requestPayload = new StreamSource(new ByteArrayInputStream(requestStr.toString().getBytes()));
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            Result responseResult = new StreamResult(bos);
            webService.sendSourceAndReceiveToResult(requestPayload, responseResult);
            return bos.toString();
      }

}
0
 
3XLcomAuthor Commented:
How did you add the web service as an Axis or Axis2 Client ?
0
Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
3XLcomAuthor Commented:
Also what is webserviceTemplate in this code
0
 
3XLcomAuthor Commented:
Sir i^ve checked your solution this is about the send and receive just xml records but on the next step webservice returning ear formed tables so this won't be enough in my opinion for an axis2 webservice
0
 
tom_sebastianCommented:
WebServiceTemplate is a Spring-WS convenient class. you can configure axis2 message factory in the spring config. you can use marshaller too. add attachment because spring ws allows MTOM attachments too.

the sample code I added here is for the question asked. it will send exactly what you described in the problem with changed endpoint url. and get the exact response.

Spring-ws used SAAJ as default I guess, but you can always set a Axis2 message factory. Define a marshaller with MTOM enabled and set to webservice template.
0
 
tom_sebastianCommented:
you enable Axis2 like this:
org.springframework.ws.soap.axiom.AxiomSoapMessageFactory soapMsgFactory = new AxiomSoapMessageFactory();
WebServiceTemplate webService = new WebServiceTemplate(soapMsgFactory);
0
 
tom_sebastianCommented:
org.springframework.ws.soap.axiom.AxiomSoapMessageFactory soapMsgFactory = new AxiomSoapMessageFactory();
WebServiceTemplate webService = new WebServiceTemplate(soapMsgFactory);
            
org.springframework.oxm.jaxb.Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
marshaller.setMtomEnabled(true);
marshaller.setContextPath("");//set the JAXB xml object context
webService.setMarshaller(marshaller);
webService.setUnmarshaller(marshaller);


webServiceTemplate.marshalSendAndReceive method can send and receive xml java objects instead of xml source.



0
 
3XLcomAuthor Commented:
Thanks for all your help
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

  • 5
  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now