...
Tuscany
...
RDB
...
DAS
...
Sample
...
(companyweb)
...
This
...
stand-alone
...
sample
...
demonstrates
...
the
...
SDO
...
RDB
...
Data
...
Access
...
Service
...
in
...
the
...
context
...
of
...
a
...
simple
...
web
...
application.
...
The
...
application
...
starts
...
with
...
a
...
canned
...
database
...
of
...
Companies
...
and
...
their
...
related
...
Departments.
...
Through
...
the
...
web
...
page
...
interface,
...
a
...
user
...
can:
...
- Display
...
- all
...
- Companies
...
- in
...
- the
...
- database
...
- Display
...
- all
...
- Companies
...
- and
...
- related
...
- Departments
...
- Add
...
- a
...
- new
...
- Department
...
- to
...
- a
...
- Company
...
- Delete
...
- all
...
- Departments
...
- from
...
- a
...
- Company
...
- Change
...
- the
...
- names
...
- of
...
- Departments
...
- in
...
- a
...
- Company
...
So,
...
this
...
simple
...
application
...
covers
...
all
...
CRUD
...
operations
...
as
...
well
...
as
...
the
...
some
...
relationship
...
manipulation
...
(adding
...
a
...
Department
...
associates
...
that
...
Department
...
with
...
the
...
Company).
...
The
...
sample
...
runs
...
on
...
Tomcat
...
5.5/6.x
...
and
...
employs
...
a
...
Derby
...
database
...
accessed
...
via
...
a
...
DataSource.
...
Running
...
the
...
sample
...
There
...
are
...
two
...
options
...
for
...
running
...
this
...
sample:
...
- Run from Tomcat configured by the build
- Deploying the CompanyWeb WAR into a Tomcat you configure yourself
1. Running from Tomcat configured by the build
This sample application is deployed (along with the canned test database) to an instance of Tomcat as part of our automated sample testing. This means you can run the java/das/samples/testing/tomcat
...
build
...
(see
...
java/das/samples/testing/tomcat/readme.htm
...
)
...
and
...
then
...
access
...
the
...
application
...
by
...
pointing
...
your
...
browser
...
to
...
http://localhost:8080/sample-companyweb/.
...
2.
...
Deploying
...
the
...
CompanyWeb
...
WAR
...
into
...
a
...
Tomcat
...
you
...
configure
...
yourself
...
Alternatively,
...
you
...
can
...
deploy
...
the
...
sample
...
to
...
your
...
own
...
configured
...
Tomcat
...
installation
...
by
...
following
...
the
...
instructions
...
below.
...
These
...
instructions
...
assume
...
that
...
you
...
have
...
either
...
1)
...
downloaded
...
the
...
Tuscany
...
sample
...
distribution
...
or
...
2)
...
Downloaded
...
the
...
Tuscany
...
source
...
and
...
run
...
our
...
maven
...
build,
...
see
...
the
...
following
...
link
...
to
...
more
...
details
...
steps
...
on
...
how
...
to
...
build
...
DAS
...
Sample
...
applications
...
http://incubator.apache.org/tuscany/java_das_overview.html
...
.
...
Set
...
Up
...
- Download
...
- and
...
- install
...
- the
...
- most
...
- recent
...
- stable
...
- version
...
- of
...
- Tomcat
...
- 5.5.
...
- You
...
- can
...
- find
...
- it
...
- here:
...
...
- Download
...
- the
...
- most
...
- recent
...
- official
...
- release
...
- of
...
- Derby
...
- from
...
- here:
...
...
The
...
- only
...
- file
...
- you'll
...
- need
...
- from
...
- this
...
- download
...
- is
...
- derby.jar
...
- Stop
...
- Tomcat
...
- Copy
...
- derby.jar
...
- (from
...
- the
...
- derby
...
- distribution)
...
- to
...
- Tomcat_Home
...
- /common/lib
...
- Add
...
- the
...
- sample
...
- war
...
- file
...
- to
...
- Tomcat_Home
...
- /webapps
...
a.
...
- sample-companyweb-xxx.war
...
- (e.g.
...
- "sample-companyweb-1.0-incubator-M2.war")
...
- Install
...
- the
...
- canned
...
- Derby
...
- database
...
- to
...
- Tomcat:
...
a.
...
- First,
...
- create
...
- a
...
- new
...
- directory
...
- named
...
- "Databases"
...
- to
...
- hold
...
- the
...
- sample
...
- database.
...
- Create
...
Tomcat_Home
...
- / Databases
...
b.
...
- Copy
...
- the
...
- dastest
...
- folder
...
- (and
...
- all
...
- its
...
- contents)
...
- from
...
- (_build
...
- directory
...
- root
...
- OR
...
- where
...
- samples
...
were unzipped_/java/das/samples/companyweb
...
- ) to
...
- Tomcat_Home
...
- /Databases
...
- (NOTE:
...
- If
...
- you
...
- are
...
- running
...
this
...
- from
...
- a
...
- sample
...
- distribution,
...
- the
...
- canned
...
- database
...
- is
...
- available
...
- in
...
- the
...
- distribution,
...
- inside
...
the
...
- databases
...
- directory.
...
- )
- Define a DataSource by adding a datasource definition to Tomcat_Home
...
- /conf/server.xml.
...
a.
...
- Find
...
- the
...
- end-of-section
...
- marker
...
- </GlobalNamingResources>
...
- and
...
- add
...
- the
...
- following
...
- lines
...
- just
...
- above
...
it
...
- : (Requirement: You must include the absolute path to the "Databases" directory in the above url
attribute. Fore example: url="jdbc:derby:c:\apache-tomcat-5.5.17\Databases/dastest"/>)No Format <!-- Global Datasource for Derby dastest database --> <Resource name="jdbc/dastest" type="javax.sql.DataSource" auth="Container" description="Derby database for DAS Company sample" maxActive="100" maxIdle="30" maxWait="10000" username="" password="" driverClassName="org.apache.derby.jdbc.EmbeddedDriver" url="jdbc:derby:{absolute path}Databases/dastest"/>
...
- Start tomcat and point your browser to: http://localhost:8080/sample-companyweb-
...
- version
...
- tag
...
- /
...
example:
...
...
Sample Architecture
This is a simple, single-page,
...
web
...
application.
...
The
...
main
...
components
...
of
...
this
...
application
...
are:
...
- The
...
- RDB
...
- Data
...
- Access
...
- Service
...
- (DAS)
...
- SDO
- CompanyClient.java
...
- Company.jsp
...
- The
...
- canned
...
- Derby
...
- database
...
The
...
CompanyClient
...
uses
...
the
...
DAS
...
directly
...
and
...
provides
...
high-level
...
services
...
to
...
the
...
jsp
...
such
...
as:
...
public
...
final
...
List
...
getCompanies()
...
This
...
is
...
a
...
good
...
place
...
to
...
look
...
for
...
how
...
you
...
might
...
use
...
the
...
DAS
...
in
...
your
...
own
...
application.
...
The
...
Company.jsp
...
responds
...
to
...
client
...
interaction
...
by
...
invoking
...
services
...
of
...
the
...
CompanyClient.
...
It
...
receives
...
data
...
from
...
the
...
CompanyClient
...
as
...
SDO
...
data
...
graphs
...
and
...
manipulates
...
SDOs
...
directly
...
to
...
display
...
data.
...
The
...
canned
...
Derby
...
database
...
comes
...
preloaded
...
with
...
Companies
...
and
...
related
...
Departments.
...
The
...
Derby
...
database
...
instance
...
is
...
a
...
simple
...
file
...
folder.
...
The
...
DAS
...
accepts
...
directives
...
(commands)
...
from
...
the
...
CompanyClient
...
and
...
reads
...
and
...
writes
...
to
...
the
...
derby
...
database
...
instance
...
appropriately.
...