Turning Web Sites into Web Services
by Jesper Jørgensen
08/15/2005
Figure 12 shows the final mappings for the method. Notice how the method declaration takes shape after the choices you make for the mappings. This declaration shows that the method takes two String parameters (name and number) and returns the type PhoneStatus. You press OK to create the mapping.
Figure 12. The final mapping
In the example, I have explained the same process for the two other robots and have generated methods for these (see Figure 13). After creating the mappings, the only thing left to configure is the communication protocol. This is the protocol that the control uses when communicating with RoboServer. Figure 13 shows how to add a new protocol.
Figure 13. Adding a new protocol
There are two kinds of protocols: the socket protocol and the JMS protocol. The socket protocol must be used for synchronous communication and is the simplest to configure. You just specify the URL of the machine on which the RoboServer is running and the port for the communication. The JMS protocol must be used for asynchronous communication, and I will not discuss it here. If you just start a RoboServer using the default script that comes with RoboSuite, it starts with a socket protocol on port 50000, and you can just select the default values for the socket protocol used by the control (see Figure 14). This holds as long as you run RoboServer on the same machine as your WebLogic Server.
Figure 14. The protocol dialog
When the configuration of the control is completed, you press the Create button as Figure 15 shows, and the control is generated.
Figure 15. The fully configured control
The next steps in creating the Web service involve adding operations for each of the control methods. Figure 16 shows how an operation is added to the Web service by dragging the control method onto the Web service.
Figure 16. Creating an operation from a control method
Figure 17 shows the complete Web service with all the operations added.
Figure 17. The complete Web service
Before you can test the Web service there is one more thing you must configure. The search operation of the Web service will return a list that is of Java type
java.util.List. Since WebLogic Workshop does not know the type of the object on this list, you need to specify what types the return may include—in this case, that the search operation may include the Java type
controls.Phone.PhoneNumber. Figure 18 shows how this is specified.
Figure 18. Specifying the included Java types
The Web service is now ready to be tested. For testing, a RoboServer must be running on the local machine (the same as the one on which WebLogic Server is running), and this machine must be using a socket protocol on port 50000. So be sure that you have such a RoboServer running before you test the Web service. Press the Start icon in WebLogic Workshop when the Web service is shown in the Design View (or Source View). This starts the WebLogic Workshop Test Browser (see Figure 19) from which you may test the Web service.
Figure 19. Testing the Web service
To test the
add operation, you simply enter a name and a phone number in the test form for the
add method as Figure 19 shows, and then press the button marked
add. This calls the Web service, and the browser then shows the result, as Figure 20 displays.
Figure 20. The result of testing the add operation
Summary
This article has shown a very fast way to turn a Web-enabled application into a Web service. But I have only just scratched the surface of what you can do with the RoboSuite Control. In general, the controls generated may be used anywhere other types of controls are used, for example in page flows, custom controls, or process workflows. I also haven't told you about the numerous other special RoboSuite features for WebLogic Workshop included in RoboSuite BEA WebLogic Edition. These features include clipping portlets, Web service generation, a tag library for calling robots from JSP pages, and the Java API for writing custom Java code to execute robots. I may cover some of these more advanced features in a future article.
Code
Although I recommend that you follow the instructions in this article and create your own Web service and control, I include the code of the example here for you:
- The Web service: phone.jws - should be placed in the root of your Web service project.
- The control: phone.jcx - should be placed in a folder called controls in the root of your Web service.
- The robot library: phone.robotlib - should be placed in a folder called controls in the root of your Web service.
Additional Reading
Jesper Jørgensen is the Director of Engineering at Kapow Technologies, located in Denmark. Jesper J�rgensen holds a Ph.D. and M.Sc. in Computer Science from University of Copenhagen.