Generating EAServer proxy objects – PB Docs 125

Generating EAServer proxy objects

About EAServer proxy objects

Each EAServer component
has a corresponding proxy object in the client application. To access
an EAServer component, you need
to communicate through the EAServer proxy.

EAServer 6.0 and later wraps
CORBA components (including components generated from PowerBuilder)
as EJBs. An EJB component has two corresponding proxy objects in
the client application—one for the home interface and one
for the remote interface. For example, an EJB component named Cart
produces two proxies, CartHome and Cart. To access an EJB component,
you need to communicate through these two proxies.

Before you can generate proxy objects for an EAServer client, you need to create
a new project. The new project lists the objects that will be included
and specifies the name of the output library that will contain the
generated proxy objects.

Using the EAServer Proxy
wizard

The EAServer Proxy wizard helps create
projects for building EAServer proxy objects.
It allows you to connect to EAServer and
select the components you want to be able to access from the client.
Once you have created the project, you can then use the Project
painter to modify your project settings and build the proxy library.

note.png Building EJB clients

To build an EJB client that can use the services of an EJB
component on EAServer and other
J2EE-compliant servers, you can use the EJB Client Proxy wizard.
For more information, see Chapter 27, “Building an EJB client .”

Reserved words in method names

When you generate a proxy for an EAServer component
that was not created in PowerBuilder, the names of any methods that
use a PowerBuilder reserved word are changed. The proxy generator
automatically adds an underscore (_) prefix to these methods.
For example, if the component has a method with the name destroy,
the method in the proxy will be _destroy.

Using arrays with a TO clause

When you generate a proxy for a PowerBuilder component containing
an array that uses a TO clause, the proxy object
represents the range as a single value because CORBA IDL does not
support the TO clause. For example, Int
ar1[5 TO 10]
is represented
as Int ar1[6],
with [6] representing
the number of array elements. Client applications must declare the
array using a single value instead of a range.

Prepending module names

You can choose to prepend the name of the IDL module that
defines the component to the name of the proxy object created, which
makes it easier to identify proxy objects with similar names. For
example, if you select the SessionInfo component in the CTSSecurity
module and check the Prepend EAServer Package
Name to Object Name option in the wizard or Project painter, the
proxy object will be named ctssecurity_sessioninfo.
For some EAServer system modules,
currently CtsComponents and XDT, the module name is always prepended
to objects to avoid naming conflicts.

The package name and the name of the IDL module are often
the same, but they can be different, and it is always the name of
the IDL module that is prepended.

Excluding exceptions

Many EAServer components
throw exceptions that you can handle in your client application.
If you want to use the proxy you are generating with an existing
client application that does not handle exceptions, or if you do
not want to declare the exceptions in the client you are building,
you can choose to exclude exceptions from the generated proxy, either
in the wizard or in the Project painter. See “Handling errors “ for more information
about handling errors in clients.

Datatype mappings

All EAServer component interfaces
are defined in standard CORBA IDL. For a list of datatypes used
in EAServer, their CORBA IDL equivalents,
and the PowerBuilder datatypes to which they map, see the PowerScript
Reference
or the online Help.


Document get from Powerbuilder help
Thank you for watching.
Was this article helpful?
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x