Show TOC Start of Content Area

Procedure documentation Creating an Inside-Out Web Service from a Java Class  Locate the document in its SAP Library structure

Use

This procedure enables you to create inside-out Web services from pure non-abstract Java classes. Note, that you cannot create Web services from servlet Java classes.

When creating an inside-out Web service, you can use a service endpoint interface (SEI) to expose some or all methods of the java class as a Web service. More information: Service Endpoint Interface.

Prerequisites

      You have created a Dynamic Web Project.

More information: Creating Dynamic Web Projects 2.5

      You have created an Enterprise Application Project is created and the Dynamic Web Project is added to it.

      You have created a pure Java class which you want to expose as a Web service and all its business methods are implemented. The class resides in the Dynamic Web Project.

      If you want to use an existing Java interface as an SEI, it has to be available in the project.

      You have configured the AS Java settings in Window Preferences SAP AS Java.

More information: Configuring the Application Server in the Developer Studio

      You have configured the application server and Web service runtime in the SAP NetWeaver Developer Studio in Window Preferences Web Services Server and Runtime. In the Server field, choose SAP Server, and in the Web service runtime field, choose SAP NetWeaver.

Procedure

       1.      In the Package Explorer of the Java EE perspective, open the project and select the implementation bean you have created.

       2.      From the context menu, choose Web Services Create Web Service.

The Web Services wizard opens.

       3.      Move the slider to the Develop service position.

Note

At a later stage in this procedure, this will enable you to customize the servlet endpoint’s URL pattern by updating the web.xml file of the Web Module. Customizing the URL pattern is optional.

       4.      From Configuration, select SAP server and SAP NetWeaver Web service runtime.

       5.      Make sure that the service project and service EAR project are set correctly.

To set the name of the service EAR project, proceed as follows:

                            a.      Under Configuration, choose Service EAR project.

The Specify Service Project Settings dialog box opens.

                            b.      In the Service EAR project field, choose the correct service EAR project, and then choose OK.

If you have added the Dynamic Web project to a service EAR project, the name of the Dynamic Web project appears in the Service EAR project field.

       6.      Choose Next.

       7.      Depending on whether you want to use an SEI, proceed as follows:

Option

Meaning

Steps

Do not use an explicit Service Endpoint Interface

The contract definition is not decoupled from the Web service implementation.

                            a.      Choose Do not use an explicit Service Endpoint Interface.

                            b.      Choose Next.

                            c.      On the Web service customizations screen, change the values or accept the default ones, and then choose Next.

                            d.      Choose the indicators for the methods of the implementation class which you want to expose as a Web service.

                            e.      Choose Next.

Specify Existing Interface

You create the Web service against a Java interface (the SEI) available in advance. The SEI contains the methods of the implementation class which you want to expose as a Web service.

...

                            a.      Choose Specify existing interface.

                            b.      Choose Browse.

                            c.      Choose the service endpoint interface you want to use, and then choose OK.

                            d.      Choose Next.

                            e.      On the Web service customizations screen, change the values or accept the default ones, and then choose Next.

                              f.      Choose Next.

Create new interface

The Developer Studio creates a Java interface (the SEI) containing the methods, which you choose to expose.

...

                            a.      Choose Create new interface.

                            b.      Enter a name for the SEI.

                            c.      If necessary, change the SEI package and the folder where the Developer Studio should create the SEI.

                            d.      Choose Next.

                            e.      On the Web service customizations screen, change the values or accept the default ones, and then choose Next.

                              f.      If the implementation class extends a superclass whose methods you also want to expose, choose Show superclass methods.

                            g.      Choose the indicators for the methods of the implementation class and/or its superclass which you want to expose as a Web service.

                            h.      Choose Next.

       8.      Choose Finish.

The Developer Studio adds Java EE 5 annotations for Web services to the Java class, as well as to the service endpoint interface, if applicable.

Optionally, you can customize the Web service endpoint’s URL pattern. Proceed as follows to apply additional settings to the Web module:

                            a.      Open the web.xml file of the Web module.

                            b.      On the Source tab page, add the entries as shown in the code excerpt below. These changes add the servlet and servlet-mapping entries that reference the Java class and enable you to optionally customize the servlet’s URL pattern.

Syntax

...

<display-name>ProjectName</display-name>

  <servlet>

   <description></description>

    <!-- Free text name of the servlet, for example myServlet -->

   <servlet-name>ServletName</servlet-name>

    <!-- The name, including the package,

    of the Java class serving as a servlet endpoint,

    for example com.sap.demo.myServlet -->

   <servlet-class>Package.ServletName</servlet-class>

  </servlet>

  <servlet-mapping>

    <!-- Free text name of the servlet, for example myServlet -->

   <servlet-name>ServletName</servlet-name>

   <!-- Free text string which identifies the URL pattern

   on which the servlet endpoint will be available -->

   <url-pattern>/MyURLPattern</url-pattern>

  </servlet-mapping>

 

  <welcome-file-list>

    ...

  </welcome-file-list>

 

                            c.      Save the file and build the project.

       9.      You can use annotations to configure the Web service.

More information: Configuring Web Services at Design Time

   10.      Deploy the Web service on the SAP NetWeaver Application Server.

More information: Building, Publishing and Removing Published Java EE Applications.

To invoke the servlet, in a new Web browser enter the following data:

http://<server>:<http port>/<webproject name>/<url-pattern>

Note

If you have not customized the URL pattern, then you can invoke the servlet by using the following URL:

http://<server>:<http port>/<webproject name>/<servlet name>

   11.      You can view the WSDL by entering the WSDL URL in a Web browser.

A WSDL URL comprises:

http://<host>:<http port>/<Service contextRoot>/<BindingData url>?wsdl

To find the service context root and binding data URL information for a Web service deployed on the server, proceed as follows:

                            a.      Connect to the server over Telnet.

More information: Administration Using Telnet.

                            b.      Execute the following commands:

ADD WEBSERVICES

LIST_WS

Example

In Telnet, you receive the following information about a Web service deployed on the server:

Application: sap.com/ConverterEJBEAR

Service: ConverterService

Service contextRoot: ConverterService

BindingData: ConverterLocalBinding

BindingData url: /ConverterBean

A Web service whose service context root and binding data URL are ConverterService and /ConverterBean respectively has the following WSDL URL:

http://<host>:<port>/ConverterService/ConverterBean?wsdl

More Information

More information about the mapping of the Java types to WSDL 1.1 documents or XML schemas is available in the following standard specifications:

      Java WSDL mapping:

       JAX-WS 2.0 specification (http://jcp.org/aboutJava/communityprocess/pfd/jsr224/index.html)

       Chapter 3: Java to WSDL 1.1 Mapping

      Java Schema mapping

       JAXB 2.0 specification (http://jcp.org/aboutJava/communityprocess/final/jsr222/index.html)

       Chapter 8: Java Types to XML

End of Content Area