cancel
Showing results for 
Search instead for 
Did you mean: 

wsdl to be generated by PI

Former Member
0 Kudos
2,569

Hi Experts,

I have to worl on the scenario :Non-SAP --> PI --> SAP R/3

Receiver is RFC. Webservice has to be generated by PI. What are the requisites for the same and how can this be achieved?

Please suggest!!

Thanks & Regards,

Sushama Pandey

Accepted Solutions (1)

Accepted Solutions (1)

former_member204873
Contributor
0 Kudos

hi Sushama,

WSDL can be generated in IB (Integration Builder)

Steps are as given below:

1. Under tools -> select Display WSDL.

2. Give URL as : http://<host>:<port>/XISOAPAdapter/MessageServlet?channel=:<sender Business system>:<sender communication chanel name>

3. Specify the service interface name to be used.

4. Then save it on your local machine. Which can be consumed later.

Thanks,

Mayank

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi Sushma,

you need to create the scenario with soap adapter as sender and RFC as receiver ..once everything is fine..then need to generate the WSDL with the help of the generate WSDL option in the ID and then need to provide the WSDL file to the

Non SAP application...

during the generation of the WSDL make sure the URL or SOAP URL is generating as siad above instead of using the default value provided by the ID instead..

if need more details on the generation of the WSDL search the SDN there is How to guide on the same also...

HTH

Rajesh

Former Member
0 Kudos

Hi Sushma,

I have same requirement. I am using a web service (created from a EJB client) to test the web service (for the Service Interface)

I get following exception upon running the web service:

javax.ejb.EJBException: (Failed in component: sap.com/HeaderProxyEAR) Exception raised from invocation of public java.lang.String com...doe.salesheader.DoeToSapBean.doeHeader(java.lang.String) method on bean instance com...doe.salesheader.DoeToSapBean4b588a1d for bean sap.com/HeaderProxyEARannotation|HeaderProxyEJB.jarannotation|DoeToSapBean in application sap.com/HeaderProxyEAR.; nested exception is: javax.xml.ws.WebServiceException: java.lang.ClassCastException: class com.sap.engine.services.jndi.persistent.UnsatisfiedReferenceImpl:service:namingcom.sap.engine.boot.loader.ResourceMultiParentClassLoader456d3d51alive incompatible with interface com.sap.engine.services.webservices.espbase.xi.ESPXIMessageProcessor:library:webservices_libcom.sap.engine.boot.loader.ResourceMultiParentClassLoader1e6ee98alive

Here is the code in my EJB session bean:

public class DoeToSapBean implements DoeToSapRemote, DoeToSapLocal {

@WebServiceRef (name = "SalesOrderCreate_Out_Service", wsdlLocation = "META-INF/wsdl/com/./doe/salesheader/SalesOrderCreate_Out/SalesOrderCreate_Out.wsdl")

SalesOrderCreateOutService service;

public String doeHeader(String headerXml){

SalesOrderCreateOut servicePort = service.getSalesOrderCreate_Out_Port();

SalesOrderResponse response = null;

Project salesOrderCreateRequest = new Project();

Header header = new Header();

header.setTitle("EAST COAST SHEET METAL MOTOR WARRANTY");

header.setBillToName("GLOBAL MECHANICAL SYSTEMS LTD");

salesOrderCreateRequest.setHeader(header);

try {

response = servicePort.salesOrderCreateOut(salesOrderCreateRequest);

} catch (SalesOrderError_Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

TRETURN treturn = response.getTRETURN();

Iterator ls = treturn.getItem().iterator();

while(ls.hasNext()){

TRETURN.Item tempItem = (TRETURN.Item)ls.next();

headerXml = tempItem.getMESSAGE();

break;

}

return headerXml;

}

}

Can you please post your solution...