Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Java client using SAAJ error: SEVERE: SAAJ0008: Bad Response; Unauthorized

unknown-3392562May 25 2017 — edited Jun 2 2017

I have written a Java client code using SAAJ for Primevera P6 webservices. I am getting the below authentication error. I am providing the http username + password to the code but it gives error: SEVERE: SAAJ0008: Bad Response; Unauthorized. Could some one please help me with this issue. I am stuck in this problem since a long time. The wsdl of the web service is: https://sunpower-p6.oracleindustry.com/p6ws-token/services/ProjectService?wsdl.

ERROR: Request SOAP Message = 11106 Jul 18, 2016 1:03:19 PM com.sun.xml.internal.messaging.saaj.client.p2p.HttpSOAPConnection post SEVERE: SAAJ0008: Bad Response; Unauthorized com.sun.xml.internal.messaging.saaj.SOAPExceptionImpl: Bad response: (401Unauthorized

My code:

public class TestClient {

/*
Method used to create the SOAP Request
*/

private static SOAPMessage createSOAPRequest() throws Exception
{

  
// Next, create the actual message
  
MessageFactory messageFactory = MessageFactory.newInstance();
  
SOAPMessage soapMessage = messageFactory.createMessage();
  
SOAPPart soapPart = soapMessage.getSOAPPart();


  
String serverURI = "http://xmlns.oracle.com/Primavera/P6/WS/Project/V2";

  
// SOAP Envelope
  
SOAPEnvelope envelope = soapPart.getEnvelope();
  envelope
.addNamespaceDeclaration("ProjectService", serverURI);

  
//start: setting HTTP headers - optional, comment out if not needed
  
String authorization = Base64Coder.encodeString("xyz:abc");
  
MimeHeaders hd = soapMessage.getMimeHeaders();
  hd
.addHeader("Authorization", "Basic " + authorization);
  
//end: setting HTTP headers

  
// Create and populate the body
  
SOAPBody soapBody = envelope.getBody();

  
// Create the main element and namespace
  
SOAPElement soapBodyElem = soapBody.addChildElement("ReadProjects", "ProjectService");
  
SOAPElement soapBodyElem1 = soapBodyElem.addChildElement("Field", "ProjectService");
  
SOAPElement soapBodyElem2 = soapBodyElem1.addChildElement("Id", "ProjectService");
  soapBodyElem2
.addTextNode("11106");

  hd
.addHeader("SOAPAction", serverURI  + "ReadProjects");

  
// Save the message
  soapMessage
.saveChanges();

  
// Check the input
  
System.out.println("Request SOAP Message = ");
  soapMessage
.writeTo(System.out);
  
System.out.println();
  
return soapMessage;
}

/**
* Method used to print the SOAP Response
*/

private static void printSOAPResponse(SOAPMessage soapResponse) throws Exception
{
  
// Create the transformer
  
TransformerFactory transformerFactory = TransformerFactory.newInstance();
  
Transformer transformer = transformerFactory.newTransformer();

  
// Extract the content of the reply
  
Source sourceContent = soapResponse.getSOAPPart().getContent();

  
// Set the output for the transformation
  
System.out.println("\nResponse SOAP Message = ");
  
StreamResult result = new StreamResult(System.out);
  transformer
.transform(sourceContent, result);
  
System.out.println();
}

public static void main(String[] args) throws Exception {

  
try {
  
// First create the connection
  
SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory.newInstance();
  
SOAPConnection soapConnection = soapConnectionFactory.createConnection();
  
//System.out.println(soapConnection);

  
//Send SOAP Message to SOAP Server
  
String url = "https://sunpower-p6.oracleindustry.com/p6ws-token/services/ProjectService?wsdl";
  
// Send the message and get the reply
  
SOAPMessage soapResponse = soapConnection.call(createSOAPRequest(), url);

  
// Process the SOAP Response
  printSOAPResponse
(soapResponse);

  soapConnection
.close();
  
} catch (Exception e) {
  
System.out.println(e.getMessage());
  
}

}

Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Jun 22 2017
Added on May 25 2017
2 comments
1,773 views