1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<!-- * Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License. -->
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Content-Style-Type" content="text/css">
<title>Tuscany Hello World Celtix Web Service Sample</title><!-- LINK rel="stylesheet" href="ait.css" type="text/css" --><!-- maven -->
<style type="text/css" media="all">
@import url("../../../../css/maven-base.css");
@import url("../../../../css/maven-theme.css");
@import url("../../../../css/site.css");
</style>
<link rel="stylesheet" href="./css/print.css" type="text/css" media="print">
<!-- end maven -->
</head>
<body>
<h2>Tuscany Hello World Celtix Web service Sample</h2> <h3>Overview</h3>
<p>
The Tuscany hello world Celtix Web service sample shows using the Tuscany SCA runtime as a standalone web service.
</p>
<h3>Location</h3> This sample is located in the samples\sca\helloworldws-celtix
directory.<br>
<h3>Setup</h3>This sample depends on the Tuscany runtime, Celtix, and the sample jar,
<span style="font-weight: bold;">
sample-helloworldws-celtix-incubating-M1.jar
</span>
, all of these must be available on the classpath to run the sample.
<h3>Running</h3>
In the directory samples/sca/helloworldws-celtix use the JDK 1.5 java command to run the class helloworld.HelloWorldServer
<pre>Linux: java -cp ../../../lib/tuscany-runtime-incubating-M1.jar:../../../lib/celtix/tuscany-celtix-incubating-M1.jar:target/sample-helloworldws-celtix-incubating-M1.jar helloworld.HelloWorldServer</pre>
<pre>Windows: java -cp ../../../lib/tuscany-runtime-incubating-M1.jar;../../../lib/celtix/tuscany-celtix-incubating-M1.jar;target/sample-helloworldws-celtix-incubating-M1.jar helloworld.HelloWorldServer</pre>
<h3>Code Overview</h3> The source files are physically organized as shown below:<br>
<table style="text-align: left; width: 100%;" border="1" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td>
<pre>
+---main
+---java
¦ +---helloworld
¦ HelloWorldServer.java
¦ HelloWorldImpl.java
¦ HelloWorldService.java
+---resources
¦ sca.module
+---wsdl
helloworld.wsdl
</pre>
</td>
</tr>
</tbody>
</table>
<br>
<br>
<table style="text-align: left; width: 100%; height: 154px;" border="0" cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td>HelloWorldServer.java</td>
<td>Main method to startup the Tuscany runtime which will startup the services defined in sca.module</td>
</tr>
<tr>
<td style="vertical-align: top;">HelloWorldService.java</td>
<td>Defines the Java interface implemented by the component.</td>
</tr>
<tr>
<td style="vertical-align: top;">HelloWorldImpl.java</td>
<td>Implements the SCA component. Uses the SCA service annotation
tag on the class to show what SCA interface is being implemented.</td>
</tr>
<tr>
<td style="vertical-align: top; height: 62px;">sca.module</td>
<td style="height: 62px;">Defines the SCA module, entryPoint and component.
Defines for the HelloWorldServiceComponent component and the Java class that
implements the component For the entryPoint it defines WSDL for the service, the
Java interface provided by the service, and wires the service to the HelloWorldServiceComponent</td>
</tr>
<tr>
<td>helloworld.wsdl</td>
<td>WSDL for the service.</td>
</tr>
</tbody>
</table>
<h3>Instrumentation</h3>
You can instrument Celtix runtime using Celtix management facilities.
Information in the Celtix configuration file is used to configure the behavior of Celtix management facilities.
When JMX is enabled, Celtix instrumentation info is exported through the JMX MBeanServer. To enable JMX (
JMX is disabled in Celtix by default), you need to pass in a Celtix configuration file by running the sample using command below:
<br>
<br>
In the directory samples/sca/helloworldws-celtix use the JDK 1.5 java command to run the class helloworld.HelloWorldServer
<pre>Linux: java -Dceltix.config.file=file:///<Tuscany-installation-dir>/samples/sca/helloworldws-celtix/server.xml -cp ../../../lib/tuscany-runtime-incubating-M1.jar:../../../lib/celtix/tuscany-celtix-incubating-M1.jar:target/sample-helloworldws-celtix-incubating-M1.jar helloworld.HelloWorldServer</pre>
<pre>Windows: java -Dceltix.config.file=file:///<Tuscany-installation-dir>/samples/sca/helloworldws-celtix/server.xml -cp ../../../lib/tuscany-runtime-incubating-M1.jar;../../../lib/celtix/tuscany-celtix-incubating-M1.jar;target/sample-helloworldws-celtix-incubating-M1.jar helloworld.HelloWorldServer</pre>
<Tuscany-installation-dir> is the location where Tuscany installed.
<br>
<br>
You can use jconsole, which comes with JDK1.5, to explore the Celtix managed components:
<pre>jconsole</pre>
The server JMX Service URL is:
<pre>service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi/server</pre>
NOTE: Enter the JMX service URL as above, leave the username and password empty in this sample.
<br>
<br>
Further information about Celtix instrumentation can be found from Celtix "Using Celtix Management" manual and Celtix management sample.
<br>
</body>
</html>
|