[jboss-cvs] JBossAS SVN: r67755 - projects/docs/trunk/Server_Configuration_Guide/zh-CN.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Sun Dec 2 20:16:56 EST 2007
Author: xhuang at jboss.com
Date: 2007-12-02 20:16:56 -0500 (Sun, 02 Dec 2007)
New Revision: 67755
Modified:
projects/docs/trunk/Server_Configuration_Guide/zh-CN/Book_Info.po
projects/docs/trunk/Server_Configuration_Guide/zh-CN/J2EE_EJBs_On_JBOSS.po
projects/docs/trunk/Server_Configuration_Guide/zh-CN/Naming.po
projects/docs/trunk/Server_Configuration_Guide/zh-CN/Server_Configuration_Guide.po
projects/docs/trunk/Server_Configuration_Guide/zh-CN/Web_Services.po
Log:
merge
Modified: projects/docs/trunk/Server_Configuration_Guide/zh-CN/Book_Info.po
===================================================================
--- projects/docs/trunk/Server_Configuration_Guide/zh-CN/Book_Info.po 2007-12-03 01:16:23 UTC (rev 67754)
+++ projects/docs/trunk/Server_Configuration_Guide/zh-CN/Book_Info.po 2007-12-03 01:16:56 UTC (rev 67755)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: JBEAP 420\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2007-11-05 06:03+0000\n"
+"POT-Creation-Date: 2007-12-03 00:52+0000\n"
"PO-Revision-Date: 2001-02-09 01:25+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -22,16 +22,27 @@
#. Tag: subtitle
#: Book_Info.xml:7
-#, fuzzy, no-c-format
-msgid "Configuration Guide"
-msgstr "配置"
+#, no-c-format
+msgid "Administration And Development Guide"
+msgstr ""
#. Tag: para
#: Book_Info.xml:12
#, fuzzy, no-c-format
msgid ""
-"This book is a guide to the configuration of the JBoss Application Server."
+"This book is a guide to the administration and configuration of the JBoss "
+"Application Server."
msgstr "本书介绍了怎样安装 JBoss 应用服务器。"
+#. Tag: subtitle
+#: Book_Info.xml:16
+#, no-c-format
+msgid "Authors"
+msgstr ""
+
+#, fuzzy
+#~ msgid "Configuration Guide"
+#~ msgstr "配置"
+
#~ msgid "&FORMAL-RHI;"
#~ msgstr "&FORMAL-RHI;"
Modified: projects/docs/trunk/Server_Configuration_Guide/zh-CN/J2EE_EJBs_On_JBOSS.po
===================================================================
--- projects/docs/trunk/Server_Configuration_Guide/zh-CN/J2EE_EJBs_On_JBOSS.po 2007-12-03 01:16:23 UTC (rev 67754)
+++ projects/docs/trunk/Server_Configuration_Guide/zh-CN/J2EE_EJBs_On_JBOSS.po 2007-12-03 01:16:56 UTC (rev 67755)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: JBEAP 420\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2007-11-05 06:03+0000\n"
+"POT-Creation-Date: 2007-12-03 00:52+0000\n"
"PO-Revision-Date: 2001-02-09 01:25+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -228,7 +228,7 @@
msgid ""
"As an example of the client interceptor configuration usage, consider the "
"default stateless session bean configuration found in the <literal>server/"
-"production/standardjboss.xml</literal> descriptor. <xref linkend="
+"default/standardjboss.xml</literal> descriptor. <xref linkend="
"\"The_EJB_Client_Side_View-"
"The_client_interceptors_from_the_Standard_Stateless_SessionBean_configuration."
"\"/> shows the <literal>stateless-rmi-invoker</literal> client interceptors "
@@ -248,44 +248,47 @@
#, fuzzy, no-c-format
msgid ""
"<invoker-proxy-binding>\n"
-" <name>stateless-rmi-invoker</name>\n"
-" <invoker-mbean>jboss:service=invoker,type=jrmp</invoker-"
-"mbean>\n"
-" <proxy-factory>org.jboss.proxy.ejb.ProxyFactory</proxy-"
-"factory>\n"
-" <proxy-factory-config>\n"
-" <client-interceptors>\n"
-" <home>\n"
-" <interceptor>org.jboss.proxy.ejb.HomeInterceptor</"
-"interceptor>\n"
-" <interceptor>org.jboss.proxy.SecurityInterceptor</"
-"interceptor>\n"
-" <interceptor>org.jboss.proxy."
+" <name>stateless-rmi-invoker</"
+"name>\n"
+" <invoker-mbean>jboss:service=invoker,"
+"type=jrmp</invoker-mbean>\n"
+" <proxy-factory>org.jboss.proxy.ejb."
+"ProxyFactory</proxy-factory>\n"
+" <proxy-factory-config>\n"
+" <client-interceptors>\n"
+" <home>\n"
+" <interceptor>org.jboss.proxy.ejb."
+"HomeInterceptor</interceptor>\n"
+" <interceptor>org.jboss.proxy."
+"SecurityInterceptor</interceptor>\n"
+" <interceptor>org.jboss.proxy."
"TransactionInterceptor</interceptor>\n"
-" <interceptor call-by-value=\"false\">\n"
-" org.jboss.invocation.InvokerInterceptor\n"
-" </interceptor>\n"
-" <interceptor call-by-value=\"true\">\n"
-" org.jboss.invocation.MarshallingInvokerInterceptor\n"
-" </interceptor>\n"
-" </home>\n"
-" <bean>\n"
-" <interceptor>org.jboss.proxy.ejb."
+" <interceptor call-by-value=\"false\">\n"
+" org.jboss.invocation.InvokerInterceptor\n"
+" </interceptor>\n"
+" <interceptor call-by-value=\"true\">\n"
+" org.jboss.invocation."
+"MarshallingInvokerInterceptor\n"
+" </interceptor>\n"
+" </home>\n"
+" <bean>\n"
+" <interceptor>org.jboss.proxy.ejb."
"StatelessSessionInterceptor</interceptor>\n"
-" <interceptor>org.jboss.proxy.SecurityInterceptor</"
-"interceptor>\n"
-" <interceptor>org.jboss.proxy."
+" <interceptor>org.jboss.proxy."
+"SecurityInterceptor</interceptor>\n"
+" <interceptor>org.jboss.proxy."
"TransactionInterceptor</interceptor>\n"
-" <interceptor call-by-value=\"false\">\n"
-" org.jboss.invocation.InvokerInterceptor\n"
-" </interceptor>\n"
-" <interceptor call-by-value=\"true\">\n"
-" org.jboss.invocation.MarshallingInvokerInterceptor\n"
-" </interceptor>\n"
-" </bean>\n"
-" </client-interceptors>\n"
-" </proxy-factory-config>\n"
-"</invoker-proxy-binding>"
+" <interceptor call-by-value=\"false\">\n"
+" org.jboss.invocation.InvokerInterceptor\n"
+" </interceptor>\n"
+" <interceptor call-by-value=\"true\">\n"
+" org.jboss.invocation."
+"MarshallingInvokerInterceptor\n"
+" </interceptor>\n"
+" </bean>\n"
+" </client-interceptors>\n"
+" </proxy-factory-config>\n"
+" </invoker-proxy-binding>"
msgstr ""
"<jboss>\n"
" <session>\n"
@@ -355,13 +358,14 @@
#, no-c-format
msgid ""
"<container-configuration>\n"
-" <container-name>Standard Stateless SessionBean</container-"
-"name>\n"
-" <call-logging>false</call-logging>\n"
-" <invoker-proxy-binding-name>stateless-rmi-invoker</invoker-"
-"proxy-binding-name>\n"
-" <!-- ... -->\n"
-"</container-configuration>"
+" <container-name>Standard Stateless "
+"SessionBean</container-name>\n"
+" <call-logging>false</call-"
+"logging>\n"
+" <invoker-proxy-binding-name>stateless-"
+"rmi-invoker</invoker-proxy-binding-name>\n"
+" <!-- ... -->\n"
+" </container-configuration>"
msgstr ""
#. Tag: para
@@ -702,51 +706,54 @@
#, fuzzy, no-c-format
msgid ""
"<proxy-factory-config>\n"
-" <client-interceptors>\n"
-" <home>\n"
-" <interceptor>org.jboss.proxy.ejb.HomeInterceptor</"
-"interceptor>\n"
-" <interceptor>org.jboss.proxy.SecurityInterceptor</"
-"interceptor>\n"
-" <interceptor>org.jboss.proxy.TransactionInterceptor</"
-"interceptor>\n"
-" <interceptor call-by-value=\"false\">\n"
-" org.jboss.invocation.InvokerInterceptor\n"
-" </interceptor>\n"
-" <interceptor call-by-value=\"true\">\n"
-" org.jboss.invocation.MarshallingInvokerInterceptor\n"
-" </interceptor>\n"
-" </home>\n"
-" <bean>\n"
-" <interceptor>org.jboss.proxy.ejb.EntityInterceptor</"
-"interceptor>\n"
-" <interceptor>org.jboss.proxy.SecurityInterceptor</"
-"interceptor>\n"
-" <interceptor>org.jboss.proxy.TransactionInterceptor</"
-"interceptor>\n"
-" <interceptor call-by-value=\"false\">\n"
-" org.jboss.invocation.InvokerInterceptor\n"
-" </interceptor>\n"
-" <interceptor call-by-value=\"true\">\n"
-" org.jboss.invocation.MarshallingInvokerInterceptor\n"
-" </interceptor>\n"
-" </bean>\n"
-" <list-entity>\n"
-" <interceptor>org.jboss.proxy.ejb.ListEntityInterceptor</"
-"interceptor>\n"
-" <interceptor>org.jboss.proxy.SecurityInterceptor</"
-"interceptor>\n"
-" <interceptor>org.jboss.proxy.TransactionInterceptor</"
-"interceptor>\n"
-" <interceptor call-by-value=\"false\">\n"
-" org.jboss.invocation.InvokerInterceptor\n"
-" </interceptor>\n"
-" <interceptor call-by-value=\"true\">\n"
-" org.jboss.invocation.MarshallingInvokerInterceptor\n"
-" </interceptor>\n"
-" </list-entity>\n"
-" </client-interceptors>\n"
-"</proxy-factory-config>"
+" <client-interceptors>\n"
+" <home>\n"
+" <interceptor>org.jboss.proxy.ejb."
+"HomeInterceptor</interceptor>\n"
+" <interceptor>org.jboss.proxy."
+"SecurityInterceptor</interceptor>\n"
+" <interceptor>org.jboss.proxy."
+"TransactionInterceptor</interceptor>\n"
+" <interceptor call-by-value=\"false\">\n"
+" org.jboss.invocation.InvokerInterceptor\n"
+" </interceptor>\n"
+" <interceptor call-by-value=\"true\">\n"
+" org.jboss.invocation."
+"MarshallingInvokerInterceptor\n"
+" </interceptor>\n"
+" </home>\n"
+" <bean>\n"
+" <interceptor>org.jboss.proxy.ejb."
+"EntityInterceptor</interceptor>\n"
+" <interceptor>org.jboss.proxy."
+"SecurityInterceptor</interceptor>\n"
+" <interceptor>org.jboss.proxy."
+"TransactionInterceptor</interceptor>\n"
+" <interceptor call-by-value=\"false\">\n"
+" org.jboss.invocation.InvokerInterceptor\n"
+" </interceptor>\n"
+" <interceptor call-by-value=\"true\">\n"
+" org.jboss.invocation."
+"MarshallingInvokerInterceptor\n"
+" </interceptor>\n"
+" </bean>\n"
+" <list-entity>\n"
+" <interceptor>org.jboss.proxy.ejb."
+"ListEntityInterceptor</interceptor>\n"
+" <interceptor>org.jboss.proxy."
+"SecurityInterceptor</interceptor>\n"
+" <interceptor>org.jboss.proxy."
+"TransactionInterceptor</interceptor>\n"
+" <interceptor call-by-value=\"false\">\n"
+" org.jboss.invocation.InvokerInterceptor\n"
+" </interceptor>\n"
+" <interceptor call-by-value=\"true\">\n"
+" org.jboss.invocation."
+"MarshallingInvokerInterceptor\n"
+" </interceptor>\n"
+" </list-entity>\n"
+" </client-interceptors>\n"
+" </proxy-factory-config>"
msgstr ""
"<jboss>\n"
" <session>\n"
@@ -870,12 +877,13 @@
#, no-c-format
msgid ""
"<proxy-factory-config>\n"
-" <web-class-loader>org.jboss.iiop.WebCL</web-class-loader>\n"
-" <poa>per-servant</poa>\n"
-" <register-ejbs-in-jnp-context>true</register-ejbs-in-jnp-"
-"context>\n"
-" <jnp-context>iiop</jnp-context>\n"
-"</proxy-factory-config>"
+" <web-class-loader>org.jboss.iiop."
+"WebCL</web-class-loader>\n"
+" <poa>per-servant</poa>\n"
+" <register-ejbs-in-jnp-context>true</"
+"register-ejbs-in-jnp-context>\n"
+" <jnp-context>iiop</jnp-context>\n"
+" </proxy-factory-config>"
msgstr ""
#. Tag: para
@@ -1010,23 +1018,31 @@
#, no-c-format
msgid ""
"<proxy-factory-config>\n"
-" <JMSProviderAdapterJNDI>DefaultJMSProvider</"
-"JMSProviderAdapterJNDI>\n"
-" <ServerSessionPoolFactoryJNDI>StdJMSPool</"
-"ServerSessionPoolFactoryJNDI>\n"
-" <MinimumSize>1</MinimumSize>\n"
-" <MaximumSize>15</MaximumSize>\n"
-" <KeepAliveMillis>30000</KeepAliveMillis>\n"
-" <MaxMessages>1</MaxMessages>\n"
-" <MDBConfig>\n"
-" <ReconnectIntervalSec>10</ReconnectIntervalSec>\n"
-" <DLQConfig>\n"
-" <DestinationQueue>queue/DLQ</DestinationQueue>\n"
-" <MaxTimesRedelivered>10</MaxTimesRedelivered>\n"
-" <TimeToLive>0</TimeToLive>\n"
-" </DLQConfig>\n"
-" </MDBConfig>\n"
-"</proxy-factory-config>"
+" <JMSProviderAdapterJNDI>"
+"DefaultJMSProvider</JMSProviderAdapterJNDI>\n"
+" <ServerSessionPoolFactoryJNDI>"
+"StdJMSPool</ServerSessionPoolFactoryJNDI>\n"
+" <MinimumSize>1</"
+"MinimumSize>\n"
+" <MaximumSize>15</"
+"MaximumSize>\n"
+" <KeepAliveMillis>30000</"
+"KeepAliveMillis>\n"
+" <MaxMessages>1</"
+"MaxMessages>\n"
+" <MDBConfig>\n"
+" <ReconnectIntervalSec>10</"
+"ReconnectIntervalSec>\n"
+" <DLQConfig>\n"
+" <DestinationQueue>queue/"
+"DLQ</DestinationQueue>\n"
+" <MaxTimesRedelivered>10</"
+"MaxTimesRedelivered>\n"
+" <TimeToLive>0</"
+"TimeToLive>\n"
+" </DLQConfig>\n"
+" </MDBConfig>\n"
+" </proxy-factory-config>"
msgstr ""
#. Tag: title
@@ -1116,18 +1132,24 @@
#, no-c-format
msgid ""
"<server>\n"
-" <mbean code=\"org.jboss.invocation.jrmp.server.JRMPInvoker\"\n"
-" name=\"jboss:service=invoker,type=jrmp,"
+" <mbean code=\"org.jboss.invocation.jrmp."
+"server.JRMPInvoker\"\n"
+" name=\"jboss:service=invoker,type=jrmp,"
"socketType=CompressionSocketFactory\">\n"
-" <attribute name=\"RMIObjectPort\">4445</attribute>\n"
-" <attribute name=\"RMIClientSocketFactory\">\n"
-" org.jboss.test.jrmp.ejb.CompressionClientSocketFactory\n"
-" </attribute>\n"
-" <attribute name=\"RMIServerSocketFactory\">\n"
-" org.jboss.test.jrmp.ejb.CompressionServerSocketFactory\n"
-" </attribute>\n"
-"</mbean>\n"
-" </server>"
+" <attribute name=\"RMIObjectPort"
+"\">4445</attribute>\n"
+" <attribute name=\"RMIClientSocketFactory"
+"\">\n"
+" org.jboss.test.jrmp.ejb."
+"CompressionClientSocketFactory\n"
+" </attribute>\n"
+" <attribute name=\"RMIServerSocketFactory"
+"\">\n"
+" org.jboss.test.jrmp.ejb."
+"CompressionServerSocketFactory\n"
+" </attribute>\n"
+" </mbean>\n"
+" </server>"
msgstr ""
#. Tag: para
@@ -1144,65 +1166,70 @@
#, fuzzy, no-c-format
msgid ""
"<?xml version=\"1.0\"?>\n"
-"<!DOCTYPE jboss PUBLIC\n"
-" \"-//JBoss//DTD JBOSS 3.2//EN\"\n"
-" \"http://www.jboss.org/j2ee/dtd/jboss_3_2.dtd\">\n"
-"<!-- The jboss.xml descriptor for the jrmp-comp.jar ejb unit -->\n"
-"<jboss>\n"
-" <enterprise-beans>\n"
-" <session>\n"
-" <ejb-name>StatelessSession</ejb-name>\n"
-" <configuration-name>Standard Stateless SessionBean</"
-"configuration-name>\n"
-" <invoker-bindings>\n"
-" <invoker>\n"
-" <invoker-proxy-binding-name>\n"
-" stateless-compression-invoker\n"
-" </invoker-proxy-binding-name>\n"
-" <jndi-name>jrmp-compressed/StatelessSession</"
-"jndi-name>\n"
-" </invoker>\n"
-" </invoker-bindings>\n"
-" </session>\n"
-" </enterprise-beans>\n"
-" \n"
-" <invoker-proxy-bindings>\n"
-" <invoker-proxy-binding>\n"
-" <name>stateless-compression-invoker</name>\n"
-" <invoker-mbean>\n"
-" jboss:service=invoker,type=jrmp,"
+" <!DOCTYPE jboss PUBLIC\n"
+" \"-//JBoss//DTD JBOSS 3.2//EN\"\n"
+" \"http://www.jboss.org/j2ee/dtd/jboss_3_2.dtd"
+"\">\n"
+" <!-- The jboss.xml descriptor for the "
+"jrmp-comp.jar ejb unit -->\n"
+" <jboss>\n"
+" <enterprise-beans>\n"
+" <session>\n"
+" <ejb-name>StatelessSession</ejb-"
+"name>\n"
+" <configuration-name>Standard Stateless "
+"SessionBean</configuration-name>\n"
+" <invoker-bindings>\n"
+" <invoker>\n"
+" <invoker-proxy-binding-name>\n"
+" stateless-compression-invoker\n"
+" </invoker-proxy-binding-name>\n"
+" <jndi-name>jrmp-compressed/"
+"StatelessSession</jndi-name>\n"
+" </invoker>\n"
+" </invoker-bindings>\n"
+" </session>\n"
+" </enterprise-beans>\n"
+" \n"
+" <invoker-proxy-bindings>\n"
+" <invoker-proxy-binding>\n"
+" <name>stateless-compression-"
+"invoker</name>\n"
+" <invoker-mbean>\n"
+" jboss:service=invoker,type=jrmp,"
"socketType=CompressionSocketFactory\n"
-" </invoker-mbean>\n"
-" <proxy-factory>org.jboss.proxy.ejb.ProxyFactory</proxy-"
-"factory>\n"
-" <proxy-factory-config>\n"
-" <client-interceptors>\n"
-" <home>\n"
-" <interceptor>org.jboss.proxy.ejb."
+" </invoker-mbean>\n"
+" <proxy-factory>org.jboss.proxy.ejb."
+"ProxyFactory</proxy-factory>\n"
+" <proxy-factory-config>\n"
+" <client-interceptors>\n"
+" <home>\n"
+" <interceptor>org.jboss.proxy.ejb."
"HomeInterceptor</interceptor>\n"
-" <interceptor>org.jboss.proxy."
+" <interceptor>org.jboss.proxy."
"SecurityInterceptor</interceptor>\n"
-" <interceptor>org.jboss.proxy."
+" <interceptor>org.jboss.proxy."
"TransactionInterceptor</interceptor>\n"
-" <interceptor>org.jboss.invocation."
+" <interceptor>org.jboss.invocation."
"InvokerInterceptor</interceptor>\n"
-" </home>\n"
-" <bean>\n"
-" <interceptor>\n"
-" org.jboss.proxy.ejb.StatelessSessionInterceptor\n"
-" </interceptor>\n"
-" <interceptor>org.jboss.proxy."
+" </home>\n"
+" <bean>\n"
+" <interceptor>\n"
+" org.jboss.proxy.ejb."
+"StatelessSessionInterceptor\n"
+" </interceptor>\n"
+" <interceptor>org.jboss.proxy."
"SecurityInterceptor</interceptor>\n"
-" <interceptor>org.jboss.proxy."
+" <interceptor>org.jboss.proxy."
"TransactionInterceptor</interceptor>\n"
-" <interceptor>org.jboss.invocation."
+" <interceptor>org.jboss.invocation."
"InvokerInterceptor</interceptor>\n"
-" </bean>\n"
-" </client-interceptors>\n"
-" </proxy-factory-config>\n"
-" </invoker-proxy-binding>\n"
-" </invoker-proxy-bindings>\n"
-"</jboss>"
+" </bean>\n"
+" </client-interceptors>\n"
+" </proxy-factory-config>\n"
+" </invoker-proxy-binding>\n"
+" </invoker-proxy-bindings>\n"
+" </jboss>"
msgstr ""
"<jboss>\n"
" <session>\n"
@@ -1293,59 +1320,65 @@
#, fuzzy, no-c-format
msgid ""
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
-"<!DOCTYPE jboss PUBLIC\n"
-" \"-//JBoss//DTD JBOSS 3.2//EN\"\n"
-" \"http://www.jboss.org/j2ee/dtd/jboss_3_2.dtd\">\n"
-"<jboss>\n"
-" <enterprise-beans>\n"
-" <session>\n"
-" <ejb-name>HelloWorldViaHTTP</ejb-name>\n"
-" <jndi-name>helloworld/HelloHTTP</jndi-name>\n"
-" <invoker-bindings>\n"
-" <invoker>\n"
-" <invoker-proxy-binding-name>\n"
-" stateless-http-invoker\n"
-" </invoker-proxy-binding-name>\n"
-" </invoker>\n"
-" </invoker-bindings>\n"
-" </session>\n"
-" </enterprise-beans>\n"
-" <invoker-proxy-bindings>\n"
-" <!-- A custom invoker for RMI/HTTP -->\n"
-" <invoker-proxy-binding>\n"
-" <name>stateless-http-invoker</name>\n"
-" <invoker-mbean>jboss:service=invoker,type=http</invoker-"
-"mbean>\n"
-" <proxy-factory>org.jboss.proxy.ejb.ProxyFactory</proxy-"
-"factory>\n"
-" <proxy-factory-config>\n"
-" <client-interceptors>\n"
-" <home>\n"
-" <interceptor>org.jboss.proxy.ejb."
+" <!DOCTYPE jboss PUBLIC\n"
+" \"-//JBoss//DTD JBOSS 3.2//EN\"\n"
+" \"http://www.jboss.org/j2ee/dtd/jboss_3_2.dtd"
+"\">\n"
+" <jboss>\n"
+" <enterprise-beans>\n"
+" <session>\n"
+" <ejb-name>HelloWorldViaHTTP</ejb-"
+"name>\n"
+" <jndi-name>helloworld/HelloHTTP</"
+"jndi-name>\n"
+" <invoker-bindings>\n"
+" <invoker>\n"
+" <invoker-proxy-binding-name>\n"
+" stateless-http-invoker\n"
+" </invoker-proxy-binding-name>\n"
+" </invoker>\n"
+" </invoker-bindings>\n"
+" </session>\n"
+" </enterprise-beans>\n"
+" <invoker-proxy-bindings>\n"
+" <!-- A custom invoker for RMI/HTTP --"
+">\n"
+" <invoker-proxy-binding>\n"
+" <name>stateless-http-invoker</"
+"name>\n"
+" <invoker-mbean>jboss:service=invoker,"
+"type=http</invoker-mbean>\n"
+" <proxy-factory>org.jboss.proxy.ejb."
+"ProxyFactory</proxy-factory>\n"
+" <proxy-factory-config>\n"
+" <client-interceptors>\n"
+" <home>\n"
+" <interceptor>org.jboss.proxy.ejb."
"HomeInterceptor</interceptor>\n"
-" <interceptor>org.jboss.proxy."
+" <interceptor>org.jboss.proxy."
"SecurityInterceptor</interceptor>\n"
-" <interceptor>org.jboss.proxy."
+" <interceptor>org.jboss.proxy."
"TransactionInterceptor</interceptor>\n"
-" <interceptor>org.jboss.invocation."
+" <interceptor>org.jboss.invocation."
"InvokerInterceptor</interceptor>\n"
-" </home>\n"
-" <bean>\n"
-" <interceptor>\n"
-" org.jboss.proxy.ejb.StatelessSessionInterceptor\n"
-" </interceptor>\n"
-" <interceptor>org.jboss.proxy."
+" </home>\n"
+" <bean>\n"
+" <interceptor>\n"
+" org.jboss.proxy.ejb."
+"StatelessSessionInterceptor\n"
+" </interceptor>\n"
+" <interceptor>org.jboss.proxy."
"SecurityInterceptor</interceptor>\n"
-" <interceptor>org.jboss.proxy."
+" <interceptor>org.jboss.proxy."
"TransactionInterceptor</interceptor>\n"
-" <interceptor>org.jboss.invocation."
+" <interceptor>org.jboss.invocation."
"InvokerInterceptor</interceptor>\n"
-" </bean>\n"
-" </client-interceptors>\n"
-" </proxy-factory-config>\n"
-" </invoker-proxy-binding>\n"
-" </invoker-proxy-bindings>\n"
-"</jboss>"
+" </bean>\n"
+" </client-interceptors>\n"
+" </proxy-factory-config>\n"
+" </invoker-proxy-binding>\n"
+" </invoker-proxy-bindings>\n"
+" </jboss>"
msgstr ""
"<jboss>\n"
" <session>\n"
@@ -1427,18 +1460,22 @@
#, fuzzy, no-c-format
msgid ""
"<!-- The HTTP invoker service configuration -->\n"
-"<mbean code=\"org.jboss.invocation.http.server.HttpInvoker\"\n"
-" name=\"jboss:service=invoker,type=http\">\n"
-" <!-- Use a URL of the form http://<hostname>:8080/invoker/"
-"EJBInvokerServlet\n"
-" where <hostname> is InetAddress.getHostname value on which "
-"the server\n"
-" is running. -->\n"
-" <attribute name=\"InvokerURLPrefix\">http://</attribute>\n"
-" <attribute name=\"InvokerURLSuffix\">:8080/invoker/"
-"EJBInvokerServlet</attribute>\n"
-" <attribute name=\"UseHostName\">true</attribute>\n"
-"</mbean>"
+" <mbean code=\"org.jboss.invocation.http."
+"server.HttpInvoker\"\n"
+" name=\"jboss:service=invoker,type=http"
+"\">\n"
+" <!-- Use a URL of the form http://<"
+"hostname>:8080/invoker/EJBInvokerServlet\n"
+" where <hostname> is InetAddress."
+"getHostname value on which the server\n"
+" is running. -->\n"
+" <attribute name=\"InvokerURLPrefix\">"
+"http://</attribute>\n"
+" <attribute name=\"InvokerURLSuffix"
+"\">:8080/invoker/EJBInvokerServlet</attribute>\n"
+" <attribute name=\"UseHostName\">"
+"true</attribute>\n"
+" </mbean>"
msgstr ""
"<!-- Expose the SRP service interface via HTTP -->\n"
"<mbean code=\"org.jboss.invocation.http.server.HttpProxyFactory\"\n"
@@ -1534,55 +1571,60 @@
#, fuzzy, no-c-format
msgid ""
"<jboss>\n"
-" <enterprise-beans>\n"
-" <session>\n"
-" <ejb-name>HelloWorldViaClusteredHTTP</ejb-name>\n"
-" <jndi-name>helloworld/HelloHA-HTTP</jndi-name>\n"
-" <invoker-bindings>\n"
-" <invoker>\n"
-" <invoker-proxy-binding-name>\n"
-" stateless-httpHA-invoker\n"
-" </invoker-proxy-binding-name>\n"
-" </invoker>\n"
-" </invoker-bindings>\n"
-" <clustered>true</clustered>\n"
-" </session>\n"
-" </enterprise-beans>\n"
-" <invoker-proxy-bindings>\n"
-" <invoker-proxy-binding>\n"
-" <name>stateless-httpHA-invoker</name>\n"
-" <invoker-mbean>jboss:service=invoker,type=httpHA</"
-"invoker-mbean>\n"
-" <proxy-factory>org.jboss.proxy.ejb.ProxyFactoryHA</"
-"proxy-factory>\n"
-" <proxy-factory-config>\n"
-" <client-interceptors>\n"
-" <home>\n"
-" <interceptor>org.jboss.proxy.ejb."
-"HomeInterceptor</interceptor>\n"
-" <interceptor>org.jboss.proxy."
+" <enterprise-beans>\n"
+" <session>\n"
+" <ejb-name>"
+"HelloWorldViaClusteredHTTP</ejb-name>\n"
+" <jndi-name>helloworld/HelloHA-"
+"HTTP</jndi-name>\n"
+" <invoker-bindings>\n"
+" <invoker>\n"
+" <invoker-proxy-binding-name>\n"
+" stateless-httpHA-invoker\n"
+" </invoker-proxy-binding-name>\n"
+" </invoker>\n"
+" </invoker-bindings>\n"
+" <clustered>true</"
+"clustered>\n"
+" </session>\n"
+" </enterprise-beans>\n"
+" <invoker-proxy-bindings>\n"
+" <invoker-proxy-binding>\n"
+" <name>stateless-httpHA-"
+"invoker</name>\n"
+" <invoker-mbean>jboss:"
+"service=invoker,type=httpHA</invoker-mbean>\n"
+" <proxy-factory>org.jboss.proxy."
+"ejb.ProxyFactoryHA</proxy-factory>\n"
+" <proxy-factory-config>\n"
+" <client-interceptors>\n"
+" <home>\n"
+" <interceptor>org.jboss.proxy."
+"ejb.HomeInterceptor</interceptor>\n"
+" <interceptor>org.jboss.proxy."
"SecurityInterceptor</interceptor>\n"
-" <interceptor>org.jboss.proxy."
+" <interceptor>org.jboss.proxy."
"TransactionInterceptor</interceptor>\n"
-" <interceptor>org.jboss.invocation."
-"InvokerInterceptor</interceptor>\n"
-" </home>\n"
-" <bean>\n"
-" <interceptor>\n"
-" org.jboss.proxy.ejb.StatelessSessionInterceptor\n"
-" </interceptor>\n"
-" <interceptor>org.jboss.proxy."
+" <interceptor>org.jboss."
+"invocation.InvokerInterceptor</interceptor>\n"
+" </home>\n"
+" <bean>\n"
+" <interceptor>\n"
+" org.jboss.proxy.ejb."
+"StatelessSessionInterceptor\n"
+" </interceptor>\n"
+" <interceptor>org.jboss.proxy."
"SecurityInterceptor</interceptor>\n"
-" <interceptor>org.jboss.proxy."
+" <interceptor>org.jboss.proxy."
"TransactionInterceptor</interceptor>\n"
-" <interceptor>org.jboss.invocation."
-"InvokerInterceptor</interceptor>\n"
-" </bean>\n"
-" </client-interceptors>\n"
-" </proxy-factory-config>\n"
-" </invoker-proxy-binding>\n"
-" </invoker-proxy-bindings>\n"
-"</jboss>"
+" <interceptor>org.jboss."
+"invocation.InvokerInterceptor</interceptor>\n"
+" </bean>\n"
+" </client-interceptors>\n"
+" </proxy-factory-config>\n"
+" </invoker-proxy-binding>\n"
+" </invoker-proxy-bindings>\n"
+" </jboss>"
msgstr ""
"<jboss>\n"
" <session>\n"
@@ -1658,22 +1700,39 @@
#. Tag: programlisting
#: J2EE_EJBs_On_JBOSS.xml:439
-#, no-c-format
+#, fuzzy, no-c-format
msgid ""
"<mbean code=\"org.jboss.invocation.http.server.HttpInvokerHA\"\n"
-" name=\"jboss:service=invoker,type=httpHA\">\n"
-" <!-- Use a URL of the form\n"
-" http://<hostname>:8080/invoker/EJBInvokerHAServlet\n"
-" where <hostname> is InetAddress.getHostname value on which "
-"the server\n"
-" is running.\n"
-" -->\n"
-" <attribute name=\"InvokerURLPrefix\">http://</attribute>\n"
-" <attribute name=\"InvokerURLSuffix\">:8080/invoker/"
-"EJBInvokerHAServlet</attribute>\n"
-" <attribute name=\"UseHostName\">true</attribute>\n"
+" name=\"jboss:service=invoker,type=httpHA"
+"\">\n"
+" <!-- Use a URL of the form\n"
+" http://<hostname>:8080/invoker/"
+"EJBInvokerHAServlet\n"
+" where <hostname> is InetAddress."
+"getHostname value on which the server\n"
+" is running.\n"
+" -->\n"
+" <attribute name=\"InvokerURLPrefix\">"
+"http://</attribute>\n"
+" <attribute name=\"InvokerURLSuffix"
+"\">:8080/invoker/EJBInvokerHAServlet</attribute>\n"
+" <attribute name=\"UseHostName\">"
+"true</attribute>\n"
+" </mbean>"
+msgstr ""
+"<!-- Expose the SRP service interface via HTTP -->\n"
+"<mbean code=\"org.jboss.invocation.http.server.HttpProxyFactory\"\n"
+" name=\"jboss.security.tests:service=SRP/HTTP\">\n"
+" <attribute name=\"InvokerURL\">http://localhost:8080/invoker/"
+"JMXInvokerServlet</attribute>\n"
+" <attribute name=\"InvokerName\">jboss.security.tests:"
+"service=SRPService</attribute>\n"
+" <attribute name=\"ExportedInterface\">\n"
+" org.jboss.security.srp.SRPRemoteServerInterface\n"
+" </attribute>\n"
+" <attribute name=\"JndiName\">srp-test-http/SRPServerInterface</"
+"attribute>\n"
"</mbean>"
-msgstr ""
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:440
@@ -1860,7 +1919,7 @@
"Probably the most problematic aspect of writing EJBs is the fact that there "
"is a disconnection between the bean implementation and its remote and home "
"interfaces, as well as its deployment descriptor configuration. It is easy "
-"to have these separate elements get out of synch. One tool that helps "
+"to have these separate elements get out of sync. One tool that helps "
"eliminate this problem is XDoclet. It allows you to use custom JavaDoc-like "
"tags in the EJB bean implementation class to generate the related bean "
"interfaces, deployment descriptors and related objects. See the XDoclet home "
@@ -1978,73 +2037,88 @@
#, no-c-format
msgid ""
"<container-configuration>\n"
-" <container-name>Standard CMP 2.x EntityBean</container-"
-"name>\n"
-" <call-logging>false</call-logging>\n"
-" <invoker-proxy-binding-name>entity-rmi-invoker</invoker-proxy-"
-"binding-name>\n"
-" <sync-on-commit-only>false</sync-on-commit-only>\n"
-" <insert-after-ejb-post-create>false</insert-after-ejb-post-"
-"create>\n"
-" <call-ejb-store-on-clean>true</call-ejb-store-on-clean>\n"
-" <container-interceptors>\n"
-" <interceptor>org.jboss.ejb.plugins."
-"ProxyFactoryFinderInterceptor</interceptor>\n"
-" <interceptor>org.jboss.ejb.plugins.LogInterceptor</"
-"interceptor>\n"
-" <interceptor>org.jboss.ejb.plugins.SecurityInterceptor</"
-"interceptor>\n"
-" <interceptor>org.jboss.ejb.plugins.TxInterceptorCMT</"
-"interceptor>\n"
-" <interceptor>org.jboss.ejb.plugins."
-"CallValidationInterceptor</interceptor>\n"
-" <interceptor metricsEnabled=\"true\">\n"
-" org.jboss.ejb.plugins.MetricsInterceptor\n"
-" </interceptor>\n"
-" <interceptor>org.jboss.ejb.plugins."
-"EntityCreationInterceptor</interceptor>\n"
-" <interceptor>org.jboss.ejb.plugins.EntityLockInterceptor</"
-"interceptor>\n"
-" <interceptor>org.jboss.ejb.plugins."
-"EntityInstanceInterceptor</interceptor>\n"
-" <interceptor>org.jboss.ejb.plugins."
-"EntityReentranceInterceptor</interceptor>\n"
-" <interceptor>\n"
-" org.jboss.resource.connectionmanager."
+" <container-name>Standard CMP 2."
+"x EntityBean</container-name>\n"
+" <call-logging>false</call-"
+"logging>\n"
+" <invoker-proxy-binding-name>"
+"entity-rmi-invoker</invoker-proxy-binding-name>\n"
+" <sync-on-commit-only>false</"
+"sync-on-commit-only>\n"
+" <insert-after-ejb-post-create>"
+"false</insert-after-ejb-post-create>\n"
+" <call-ejb-store-on-clean>"
+"true</call-ejb-store-on-clean>\n"
+" <container-interceptors>\n"
+" <interceptor>org.jboss.ejb."
+"plugins.ProxyFactoryFinderInterceptor</interceptor>\n"
+" <interceptor>org.jboss.ejb."
+"plugins.LogInterceptor</interceptor>\n"
+" <interceptor>org.jboss.ejb."
+"plugins.SecurityInterceptor</interceptor>\n"
+" <interceptor>org.jboss.ejb."
+"plugins.TxInterceptorCMT</interceptor>\n"
+" <interceptor>org.jboss.ejb."
+"plugins.CallValidationInterceptor</interceptor>\n"
+" <interceptor metricsEnabled=\"true"
+"\">\n"
+" org.jboss.ejb.plugins."
+"MetricsInterceptor\n"
+" </interceptor>\n"
+" <interceptor>org.jboss.ejb."
+"plugins.EntityCreationInterceptor</interceptor>\n"
+" <interceptor>org.jboss.ejb."
+"plugins.EntityLockInterceptor</interceptor>\n"
+" <interceptor>org.jboss.ejb."
+"plugins.EntityInstanceInterceptor</interceptor>\n"
+" <interceptor>org.jboss.ejb."
+"plugins.EntityReentranceInterceptor</interceptor>\n"
+" <interceptor>\n"
+" org.jboss.resource.connectionmanager."
"CachedConnectionInterceptor\n"
-" </interceptor>\n"
-" <interceptor>org.jboss.ejb.plugins."
-"EntitySynchronizationInterceptor</interceptor>\n"
-" <interceptor>org.jboss.ejb.plugins.cmp.jdbc."
-"JDBCRelationInterceptor</interceptor>\n"
-" </container-interceptors>\n"
-" <instance-pool>org.jboss.ejb.plugins.EntityInstancePool</"
-"instance-pool>\n"
-" <instance-cache>org.jboss.ejb.plugins."
-"InvalidableEntityInstanceCache</instance-cache>\n"
-" <persistence-manager>org.jboss.ejb.plugins.cmp.jdbc."
-"JDBCStoreManager</persistence-manager>\n"
-" <locking-policy>org.jboss.ejb.plugins.lock."
-"QueuedPessimisticEJBLock</locking-policy>\n"
-" <container-cache-conf>\n"
-" <cache-policy>org.jboss.ejb.plugins."
-"LRUEnterpriseContextCachePolicy</cache-policy>\n"
-" <cache-policy-conf>\n"
-" <min-capacity>50</min-capacity>\n"
-" <max-capacity>1000000</max-capacity>\n"
-" <overager-period>300</overager-period>\n"
-" <max-bean-age>600</max-bean-age>\n"
-" <resizer-period>400</resizer-period>\n"
-" <max-cache-miss-period>60</max-cache-miss-period>\n"
-" <min-cache-miss-period>1</min-cache-miss-period>\n"
-" <cache-load-factor>0.75</cache-load-factor>\n"
-" </cache-policy-conf>\n"
-" </container-cache-conf>\n"
-" <container-pool-conf>\n"
-" <MaximumSize>100</MaximumSize>\n"
-" </container-pool-conf>\n"
-" <commit-option>B</commit-option>\n"
-"</container-configuration>"
+" </interceptor>\n"
+" <interceptor>org.jboss.ejb."
+"plugins.EntitySynchronizationInterceptor</interceptor>\n"
+" <interceptor>org.jboss.ejb."
+"plugins.cmp.jdbc.JDBCRelationInterceptor</interceptor>\n"
+" </container-interceptors>\n"
+" <instance-pool>org.jboss.ejb."
+"plugins.EntityInstancePool</instance-pool>\n"
+" <instance-cache>org.jboss.ejb."
+"plugins.InvalidableEntityInstanceCache</instance-cache>\n"
+" <persistence-manager>org.jboss."
+"ejb.plugins.cmp.jdbc.JDBCStoreManager</persistence-manager>\n"
+" <locking-policy>org.jboss.ejb."
+"plugins.lock.QueuedPessimisticEJBLock</locking-policy>\n"
+" <container-cache-conf>\n"
+" <cache-policy>org.jboss.ejb."
+"plugins.LRUEnterpriseContextCachePolicy</cache-policy>\n"
+" <cache-policy-conf>\n"
+" <min-capacity>50</min-"
+"capacity>\n"
+" <max-capacity>1000000</max-"
+"capacity>\n"
+" <overager-period>300</"
+"overager-period>\n"
+" <max-bean-age>600</max-bean-"
+"age>\n"
+" <resizer-period>400</"
+"resizer-period>\n"
+" <max-cache-miss-period>60</"
+"max-cache-miss-period>\n"
+" <min-cache-miss-period>1</"
+"min-cache-miss-period>\n"
+" <cache-load-factor>0.75</"
+"cache-load-factor>\n"
+" </cache-policy-conf>\n"
+" </container-cache-conf>\n"
+" <container-pool-conf>\n"
+" <MaximumSize>100</"
+"MaximumSize>\n"
+" </container-pool-conf>\n"
+" <commit-option>B</commit-"
+"option>\n"
+" </container-configuration>"
msgstr ""
#. Tag: para
@@ -2072,12 +2146,15 @@
#, no-c-format
msgid ""
"How an EJB deployment chooses its container configuration is based on the "
-"explicit or implict <literal>jboss/enterprise-beans/<type>/"
+"explicit or implicit <literal>jboss/enterprise-beans/<type>/"
"configuration-name</literal> element. The <literal>configuration-name</"
"literal> element is a link to a <literal>container-configurations/container-"
-"configuration</literal> element. It specifies which container configuration "
-"to use for the referring EJB. The link is from a <literal>configuration-"
-"name</literal> element to a <literal>container-name</literal> element."
+"configuration</literal> element in <xref linkend="
+"\"Container_configuration_information-"
+"The_jboss_4_0_DTD_elements_related_to_container_configuration.\"/>. It "
+"specifies which container configuration to use for the referring EJB. The "
+"link is from a <literal>configuration-name</literal> element to a "
+"<literal>container-name</literal> element."
msgstr ""
#. Tag: para
@@ -2105,26 +2182,28 @@
#, no-c-format
msgid ""
"<?xml version=\"1.0\"?>\n"
-"<jboss>\n"
-" <enterprise-beans>\n"
-" <session>\n"
-" <ejb-name>EchoBean</ejb-name>\n"
-" <configuration-name>Secured Stateless SessionBean</"
-"configuration-name>\n"
-" <!-- ... -->\n"
-" </session>\n"
-" </enterprise-beans>\n"
-" <container-configurations>\n"
-" <container-configuration extends=\"Standard Stateless SessionBean"
-"\">\n"
-" <container-name>Secured Stateless SessionBean</"
-"container-name>\n"
-" <!-- Override the container security domain -->\n"
-" <security-domain>java:/jaas/my-security-domain</"
-"security-domain>\n"
-" </container-configuration>\n"
-" </container-configurations>\n"
-"</jboss>"
+" <jboss>\n"
+" <enterprise-beans>\n"
+" <session>\n"
+" <ejb-name>EchoBean</ejb-"
+"name>\n"
+" <configuration-name>Secured "
+"Stateless SessionBean</configuration-name>\n"
+" <!-- ... -->\n"
+" </session>\n"
+" </enterprise-beans>\n"
+" <container-configurations>\n"
+" <container-configuration extends="
+"\"Standard Stateless SessionBean\">\n"
+" <container-name>Secured "
+"Stateless SessionBean</container-name>\n"
+" <!-- Override the container "
+"security domain -->\n"
+" <security-domain>java:/jaas/my-"
+"security-domain</security-domain>\n"
+" </container-configuration>\n"
+" </container-configurations>\n"
+" </jboss>"
msgstr ""
#. Tag: para
@@ -2216,10 +2295,11 @@
#, no-c-format
msgid ""
"import org.w3c.dom.Element;\n"
-"public interface XmlLoadable\n"
-"{\n"
-" public void importXml(Element element) throws Exception;\n"
-"}"
+" public interface XmlLoadable\n"
+" {\n"
+" public void importXml(Element "
+"element) throws Exception;\n"
+" }"
msgstr ""
#. Tag: para
@@ -3129,16 +3209,20 @@
#, no-c-format
msgid ""
"public interface ContainerPlugin\n"
-" extends Service, AllowedOperationsFlags\n"
-"{\n"
-" /** co\n"
-" * This callback is set by the container so that the plugin\n"
-" * may access its container\n"
-" *\n"
-" * @param con the container which owns the plugin\n"
-" */\n"
-" public void setContainer(Container con);\n"
-"}"
+" extends Service, "
+"AllowedOperationsFlags\n"
+" {\n"
+" /** \n"
+" * This callback is set by "
+"the container so that the plugin\n"
+" * may access its container\n"
+" *\n"
+" * @param con the container "
+"which owns the plugin\n"
+" */\n"
+" public void setContainer"
+"(Container con);\n"
+" }"
msgstr ""
#. Tag: title
@@ -3167,15 +3251,20 @@
#, no-c-format
msgid ""
"import org.jboss.invocation.Invocation;\n"
-" \n"
-"public interface Interceptor \n"
-" extends ContainerPlugin\n"
-"{\n"
-" public void setNext(Interceptor interceptor);\n"
-" public Interceptor getNext();\n"
-" public Object invokeHome(Invocation mi) throws Exception;\n"
-" public Object invoke(Invocation mi) throws Exception;\n"
-"}"
+" \n"
+" public interface "
+"Interceptor \n"
+" extends ContainerPlugin\n"
+" {\n"
+" public void setNext"
+"(Interceptor interceptor);\n"
+" public Interceptor getNext"
+"();\n"
+" public Object invokeHome"
+"(Invocation mi) throws Exception;\n"
+" public Object invoke"
+"(Invocation mi) throws Exception;\n"
+" }"
msgstr ""
#. Tag: para
@@ -3265,46 +3354,62 @@
#, no-c-format
msgid ""
"public interface InstancePool\n"
-" extends ContainerPlugin\n"
-"{\n"
-" /** \n"
-" * Get an instance without identity. Can be used\n"
-" * by finders and create-methods, or stateless beans\n"
-" *\n"
-" * @return Context /w instance\n"
-" * @exception RemoteException\n"
-" */\n"
-" public EnterpriseContext get() throws Exception;\n"
-" \n"
-" /** Return an anonymous instance after invocation.\n"
-" *\n"
-" * @param ctx\n"
-" */\n"
-" public void free(EnterpriseContext ctx);\n"
-" \n"
-" /**\n"
-" * Discard an anonymous instance after invocation.\n"
-" * This is called if the instance should not be reused,\n"
-" * perhaps due to some exception being thrown from it.\n"
-" *\n"
-" * @param ctx\n"
-" */\n"
-" public void discard(EnterpriseContext ctx);\n"
-" \n"
-" /**\n"
-" * Return the size of the pool.\n"
-" *\n"
-" * @return the size of the pool.\n"
-" */\n"
-" public int getCurrentSize();\n"
-" \n"
-" /**\n"
-" * Get the maximum size of the pool.\n"
-" *\n"
-" * @return the size of the pool.\n"
-" */\n"
-" public int getMaxSize();\n"
-"}"
+" extends ContainerPlugin\n"
+" {\n"
+" /** \n"
+" * Get an instance without "
+"identity. Can be used\n"
+" * by finders and create-"
+"methods, or stateless beans\n"
+" *\n"
+" * @return Context /w "
+"instance\n"
+" * @exception "
+"RemoteException\n"
+" */\n"
+" public EnterpriseContext get"
+"() throws Exception;\n"
+" \n"
+" /** Return an anonymous "
+"instance after invocation.\n"
+" *\n"
+" * @param ctx\n"
+" */\n"
+" public void free"
+"(EnterpriseContext ctx);\n"
+" \n"
+" /**\n"
+" * Discard an anonymous "
+"instance after invocation.\n"
+" * This is called if the "
+"instance should not be reused,\n"
+" * perhaps due to some "
+"exception being thrown from it.\n"
+" *\n"
+" * @param ctx\n"
+" */\n"
+" public void discard"
+"(EnterpriseContext ctx);\n"
+" \n"
+" /**\n"
+" * Return the size of the "
+"pool.\n"
+" *\n"
+" * @return the size of the "
+"pool.\n"
+" */\n"
+" public int getCurrentSize"
+"();\n"
+" \n"
+" /**\n"
+" * Get the maximum size of "
+"the pool.\n"
+" *\n"
+" * @return the size of the "
+"pool.\n"
+" */\n"
+" public int getMaxSize();\n"
+" }"
msgstr ""
#. Tag: para
@@ -3355,64 +3460,91 @@
#, no-c-format
msgid ""
"public interface InstanceCache \n"
-" extends ContainerPlugin\n"
-"{\n"
-" /**\n"
-" * Gets a bean instance from this cache given the identity.\n"
-" * This method may involve activation if the instance is not\n"
-" * in the cache.\n"
-" * Implementation should have O(1) complexity.\n"
-" * This method is never called for stateless session beans.\n"
-" *\n"
-" * @param id the primary key of the bean\n"
-" * @return the EnterpriseContext related to the given id\n"
-" * @exception RemoteException in case of illegal calls\n"
-" * (concurrent / reentrant), NoSuchObjectException if\n"
-" * the bean cannot be found.\n"
-" * @see #release\n"
-" */\n"
-" public EnterpriseContext get(Object id)\n"
-" throws RemoteException, NoSuchObjectException;\n"
-" \n"
-" /**\n"
-" * Inserts an active bean instance after creation or activation.\n"
-" * Implementation should guarantee proper locking and O(1) complexity.\n"
-" *\n"
-" * @param ctx the EnterpriseContext to insert in the cache\n"
-" * @see #remove\n"
-" */\n"
-" public void insert(EnterpriseContext ctx);\n"
-" \n"
-" /**\n"
-" * Releases the given bean instance from this cache.\n"
-" * This method may passivate the bean to get it out of the cache.\n"
-" * Implementation should return almost immediately leaving the\n"
-" * passivation to be executed by another thread.\n"
-" *\n"
-" * @param ctx the EnterpriseContext to release\n"
-" * @see #get\n"
-" */\n"
-" public void release(EnterpriseContext ctx);\n"
-" \n"
-" /**\n"
-" * Removes a bean instance from this cache given the identity.\n"
-" * Implementation should have O(1) complexity and guarantee\n"
-" * proper locking.\n"
-" *\n"
-" * @param id the primary key of the bean\n"
-" * @see #insert\n"
-" */\n"
-" public void remove(Object id);\n"
-" \n"
-" /**\n"
-" * Checks whether an instance corresponding to a particular\n"
-" * id is active\n"
-" *\n"
-" * @param id the primary key of the bean\n"
-" * @see #insert\n"
-" */\n"
-" public boolean isActive(Object id); \n"
-"}"
+" extends ContainerPlugin\n"
+" {\n"
+" /**\n"
+" * Gets a bean instance from "
+"this cache given the identity.\n"
+" * This method may involve "
+"activation if the instance is not\n"
+" * in the cache.\n"
+" * Implementation should have "
+"O(1) complexity.\n"
+" * This method is never "
+"called for stateless session beans.\n"
+" *\n"
+" * @param id the primary key "
+"of the bean\n"
+" * @return the "
+"EnterpriseContext related to the given id\n"
+" * @exception RemoteException "
+"in case of illegal calls\n"
+" * (concurrent / reentrant), "
+"NoSuchObjectException if\n"
+" * the bean cannot be found.\n"
+" * @see #release\n"
+" */\n"
+" public EnterpriseContext get"
+"(Object id)\n"
+" throws RemoteException, "
+"NoSuchObjectException;\n"
+" \n"
+" /**\n"
+" * Inserts an active bean "
+"instance after creation or activation.\n"
+" * Implementation should "
+"guarantee proper locking and O(1) complexity.\n"
+" *\n"
+" * @param ctx the "
+"EnterpriseContext to insert in the cache\n"
+" * @see #remove\n"
+" */\n"
+" public void insert"
+"(EnterpriseContext ctx);\n"
+" \n"
+" /**\n"
+" * Releases the given bean "
+"instance from this cache.\n"
+" * This method may passivate "
+"the bean to get it out of the cache.\n"
+" * Implementation should "
+"return almost immediately leaving the\n"
+" * passivation to be executed "
+"by another thread.\n"
+" *\n"
+" * @param ctx the "
+"EnterpriseContext to release\n"
+" * @see #get\n"
+" */\n"
+" public void release"
+"(EnterpriseContext ctx);\n"
+" \n"
+" /**\n"
+" * Removes a bean instance "
+"from this cache given the identity.\n"
+" * Implementation should have "
+"O(1) complexity and guarantee\n"
+" * proper locking.\n"
+" *\n"
+" * @param id the primary key "
+"of the bean\n"
+" * @see #insert\n"
+" */\n"
+" public void remove(Object "
+"id);\n"
+" \n"
+" /**\n"
+" * Checks whether an instance "
+"corresponding to a particular\n"
+" * id is active\n"
+" *\n"
+" * @param id the primary key "
+"of the bean\n"
+" * @see #insert\n"
+" */\n"
+" public boolean isActive"
+"(Object id); \n"
+" }"
msgstr ""
#. Tag: para
@@ -3492,162 +3624,232 @@
#, no-c-format
msgid ""
"public interface EntityPersistenceManager \n"
-" extends ContainerPlugin\n"
-"{\n"
-" /**\n"
-" * Returns a new instance of the bean class or a subclass of the\n"
-" * bean class.\n"
-" *\n"
-" * @return the new instance\n"
-" */\n"
-" Object createBeanClassInstance() throws Exception;\n"
-" \n"
-" /**\n"
-" * This method is called whenever an entity is to be created. The\n"
-" * persistence manager is responsible for calling the ejbCreate method\n"
-" * on the instance and to handle the results properly wrt the "
-"persistent\n"
-" * store.\n"
-" *\n"
-" * @param m the create method in the home interface that was\n"
-" * called\n"
-" * @param args any create parameters\n"
-" * @param instance the instance being used for this create call\n"
-" */\n"
-" void createEntity(Method m,\n"
-" Object[] args,\n"
-" EntityEnterpriseContext instance)\n"
-" throws Exception;\n"
-" \n"
-" /**\n"
-" * This method is called whenever an entity is to be created. The\n"
-" * persistence manager is responsible for calling the ejbPostCreate "
-"method\n"
-" * on the instance and to handle the results properly wrt the "
-"persistent\n"
-" * store.\n"
-" *\n"
-" * @param m the create method in the home interface that was\n"
-" * called\n"
-" * @param args any create parameters\n"
-" * @param instance the instance being used for this create call\n"
-" */\n"
-" void postCreateEntity(Method m,\n"
-" Object[] args,\n"
-" EntityEnterpriseContext instance)\n"
-" throws Exception;\n"
-" \n"
-" /**\n"
-" * This method is called when single entities are to be found. The\n"
-" * persistence manager must find out whether the wanted instance is\n"
-" * available in the persistence store, and if so it shall use the\n"
-" * ContainerInvoker plugin to create an EJBObject to the instance, "
-"which\n"
-" * is to be returned as result.\n"
-" *\n"
-" * @param finderMethod the find method in the home interface that was\n"
-" * called\n"
-" * @param args any finder parameters\n"
-" * @param instance the instance to use for the finder call\n"
-" * @return an EJBObject representing the found entity\n"
-" */\n"
-" Object findEntity(Method finderMethod,\n"
-" Object[] args,\n"
-" EntityEnterpriseContext instance)\n"
-" throws Exception;\n"
-" \n"
-" /**\n"
-" * This method is called when collections of entities are to be\n"
-" * found. The persistence manager must find out whether the wanted\n"
-" * instances are available in the persistence store, and if so it\n"
-" * shall use the ContainerInvoker plugin to create EJBObjects to\n"
-" * the instances, which are to be returned as result.\n"
-" *\n"
-" * @param finderMethod the find method in the home interface that was\n"
-" * called\n"
-" * @param args any finder parameters\n"
-" * @param instance the instance to use for the finder call\n"
-" * @return an EJBObject collection representing the found\n"
-" * entities\n"
-" */\n"
-" Collection findEntities(Method finderMethod,\n"
-" Object[] args,\n"
-" EntityEnterpriseContext instance)\n"
-" throws Exception;\n"
-" \n"
-" /**\n"
-" * This method is called when an entity shall be activated. The\n"
-" * persistence manager must call the ejbActivate method on the\n"
-" * instance.\n"
-" *\n"
-" * @param instance the instance to use for the activation\n"
-" *\n"
-" * @throws RemoteException thrown if some system exception occurs\n"
-" */\n"
-" void activateEntity(EntityEnterpriseContext instance)\n"
-" throws RemoteException;\n"
-" \n"
-" /**\n"
-" * This method is called whenever an entity shall be load from the\n"
-" * underlying storage. The persistence manager must load the state\n"
-" * from the underlying storage and then call ejbLoad on the\n"
-" * supplied instance.\n"
-" *\n"
-" * @param instance the instance to synchronize\n"
-" *\n"
-" * @throws RemoteException thrown if some system exception occurs\n"
-" */\n"
-" void loadEntity(EntityEnterpriseContext instance)\n"
-" throws RemoteException;\n"
-" \n"
-" /**\n"
-" * This method is used to determine if an entity should be stored.\n"
-" *\n"
-" * @param instance the instance to check\n"
-" * @return true, if the entity has been modified\n"
-" * @throws Exception thrown if some system exception occurs\n"
-" */\n"
-" boolean isModified(EntityEnterpriseContext instance) throws Exception;\n"
-" \n"
-" /**\n"
-" * This method is called whenever an entity shall be stored to the\n"
-" * underlying storage. The persistence manager must call ejbStore\n"
-" * on the supplied instance and then store the state to the\n"
-" * underlying storage.\n"
-" *\n"
-" * @param instance the instance to synchronize\n"
-" *\n"
-" * @throws RemoteException thrown if some system exception occurs\n"
-" */\n"
-" void storeEntity(EntityEnterpriseContext instance)\n"
-" throws RemoteException;\n"
-" \n"
-" /**\n"
-" * This method is called when an entity shall be passivate. The\n"
-" * persistence manager must call the ejbPassivate method on the\n"
-" * instance.\n"
-" *\n"
-" * @param instance the instance to passivate\n"
-" *\n"
-" * @throws RemoteException thrown if some system exception occurs\n"
-" */\n"
-" void passivateEntity(EntityEnterpriseContext instance)\n"
-" throws RemoteException;\n"
-" \n"
-" /**\n"
-" * This method is called when an entity shall be removed from the\n"
-" * underlying storage. The persistence manager must call ejbRemove\n"
-" * on the instance and then remove its state from the underlying\n"
-" * storage.\n"
-" *\n"
-" * @param instance the instance to remove\n"
-" *\n"
-" * @throws RemoteException thrown if some system exception occurs\n"
-" * @throws RemoveException thrown if the instance could not be removed\n"
-" */\n"
-" void removeEntity(EntityEnterpriseContext instance)\n"
-" throws RemoteException, RemoveException;\n"
-"}"
+" extends ContainerPlugin\n"
+" {\n"
+" /**\n"
+" * Returns a new instance of "
+"the bean class or a subclass of the\n"
+" * bean class.\n"
+" *\n"
+" * @return the new instance\n"
+" */\n"
+" Object "
+"createBeanClassInstance() throws Exception;\n"
+" \n"
+" /**\n"
+" * This method is called "
+"whenever an entity is to be created. The\n"
+" * persistence manager is "
+"responsible for calling the ejbCreate method\n"
+" * on the instance and to "
+"handle the results properly wrt the persistent\n"
+" * store.\n"
+" *\n"
+" * @param m the create method "
+"in the home interface that was\n"
+" * called\n"
+" * @param args any create "
+"parameters\n"
+" * @param instance the "
+"instance being used for this create call\n"
+" */\n"
+" void createEntity(Method m,\n"
+" Object[] args,\n"
+" EntityEnterpriseContext "
+"instance)\n"
+" throws Exception;\n"
+" \n"
+" /**\n"
+" * This method is called "
+"whenever an entity is to be created. The\n"
+" * persistence manager is "
+"responsible for calling the ejbPostCreate method\n"
+" * on the instance and to "
+"handle the results properly wrt the persistent\n"
+" * store.\n"
+" *\n"
+" * @param m the create method "
+"in the home interface that was\n"
+" * called\n"
+" * @param args any create "
+"parameters\n"
+" * @param instance the "
+"instance being used for this create call\n"
+" */\n"
+" void postCreateEntity(Method "
+"m,\n"
+" Object[] args,\n"
+" EntityEnterpriseContext "
+"instance)\n"
+" throws Exception;\n"
+" \n"
+" /**\n"
+" * This method is called when "
+"single entities are to be found. The\n"
+" * persistence manager must "
+"find out whether the wanted instance is\n"
+" * available in the "
+"persistence store, and if so it shall use the\n"
+" * ContainerInvoker plugin to "
+"create an EJBObject to the instance, which\n"
+" * is to be returned as "
+"result.\n"
+" *\n"
+" * @param finderMethod the "
+"find method in the home interface that was\n"
+" * called\n"
+" * @param args any finder "
+"parameters\n"
+" * @param instance the "
+"instance to use for the finder call\n"
+" * @return an EJBObject "
+"representing the found entity\n"
+" */\n"
+" Object findEntity(Method "
+"finderMethod,\n"
+" Object[] args,\n"
+" EntityEnterpriseContext "
+"instance)\n"
+" throws Exception;\n"
+" \n"
+" /**\n"
+" * This method is called when "
+"collections of entities are to be\n"
+" * found. The persistence "
+"manager must find out whether the wanted\n"
+" * instances are available in "
+"the persistence store, and if so it\n"
+" * shall use the "
+"ContainerInvoker plugin to create EJBObjects to\n"
+" * the instances, which are "
+"to be returned as result.\n"
+" *\n"
+" * @param finderMethod the "
+"find method in the home interface that was\n"
+" * called\n"
+" * @param args any finder "
+"parameters\n"
+" * @param instance the "
+"instance to use for the finder call\n"
+" * @return an EJBObject "
+"collection representing the found\n"
+" * entities\n"
+" */\n"
+" Collection findEntities"
+"(Method finderMethod,\n"
+" Object[] args,\n"
+" EntityEnterpriseContext "
+"instance)\n"
+" throws Exception;\n"
+" \n"
+" /**\n"
+" * This method is called when "
+"an entity shall be activated. The\n"
+" * persistence manager must "
+"call the ejbActivate method on the\n"
+" * instance.\n"
+" *\n"
+" * @param instance the "
+"instance to use for the activation\n"
+" *\n"
+" * @throws RemoteException "
+"thrown if some system exception occurs\n"
+" */\n"
+" void activateEntity"
+"(EntityEnterpriseContext instance)\n"
+" throws RemoteException;\n"
+" \n"
+" /**\n"
+" * This method is called "
+"whenever an entity shall be load from the\n"
+" * underlying storage. The "
+"persistence manager must load the state\n"
+" * from the underlying "
+"storage and then call ejbLoad on the\n"
+" * supplied instance.\n"
+" *\n"
+" * @param instance the "
+"instance to synchronize\n"
+" *\n"
+" * @throws RemoteException "
+"thrown if some system exception occurs\n"
+" */\n"
+" void loadEntity"
+"(EntityEnterpriseContext instance)\n"
+" throws RemoteException;\n"
+" \n"
+" /**\n"
+" * This method is used to "
+"determine if an entity should be stored.\n"
+" *\n"
+" * @param instance the "
+"instance to check\n"
+" * @return true, if the "
+"entity has been modified\n"
+" * @throws Exception thrown "
+"if some system exception occurs\n"
+" */\n"
+" boolean isModified"
+"(EntityEnterpriseContext instance) throws Exception;\n"
+" \n"
+" /**\n"
+" * This method is called "
+"whenever an entity shall be stored to the\n"
+" * underlying storage. The "
+"persistence manager must call ejbStore\n"
+" * on the supplied instance "
+"and then store the state to the\n"
+" * underlying storage.\n"
+" *\n"
+" * @param instance the "
+"instance to synchronize\n"
+" *\n"
+" * @throws RemoteException "
+"thrown if some system exception occurs\n"
+" */\n"
+" void storeEntity"
+"(EntityEnterpriseContext instance)\n"
+" throws RemoteException;\n"
+" \n"
+" /**\n"
+" * This method is called when "
+"an entity shall be passivate. The\n"
+" * persistence manager must "
+"call the ejbPassivate method on the\n"
+" * instance.\n"
+" *\n"
+" * @param instance the "
+"instance to passivate\n"
+" *\n"
+" * @throws RemoteException "
+"thrown if some system exception occurs\n"
+" */\n"
+" void passivateEntity"
+"(EntityEnterpriseContext instance)\n"
+" throws RemoteException;\n"
+" \n"
+" /**\n"
+" * This method is called when "
+"an entity shall be removed from the\n"
+" * underlying storage. The "
+"persistence manager must call ejbRemove\n"
+" * on the instance and then "
+"remove its state from the underlying\n"
+" * storage.\n"
+" *\n"
+" * @param instance the "
+"instance to remove\n"
+" *\n"
+" * @throws RemoteException "
+"thrown if some system exception occurs\n"
+" * @throws RemoveException "
+"thrown if the instance could not be removed\n"
+" */\n"
+" void removeEntity"
+"(EntityEnterpriseContext instance)\n"
+" throws RemoteException, "
+"RemoveException;\n"
+" }"
msgstr ""
#. Tag: title
@@ -3680,171 +3882,252 @@
#, no-c-format
msgid ""
"public interface EntityPersistenceStore \n"
-" extends ContainerPlugin\n"
-"{\n"
-" /**\n"
-" * Returns a new instance of the bean class or a subclass of the\n"
-" * bean class.\n"
-" *\n"
-" * @return the new instance\n"
-" *\n"
-" * @throws Exception\n"
-" */\n"
-" Object createBeanClassInstance() \n"
-" throws Exception;\n"
-" \n"
-" /**\n"
-" * Initializes the instance context.\n"
-" *\n"
-" * <p>This method is called before createEntity, and should\n"
-" * reset the value of all cmpFields to 0 or null.\n"
-" *\n"
-" * @param ctx\n"
-" *\n"
-" * @throws RemoteException\n"
-" */\n"
-" void initEntity(EntityEnterpriseContext ctx);\n"
-" \n"
-" /**\n"
-" * This method is called whenever an entity is to be created. The\n"
-" * persistence manager is responsible for handling the results\n"
-" * properly wrt the persistent store.\n"
-" *\n"
-" * @param m the create method in the home interface that was\n"
-" * called\n"
-" * @param args any create parameters\n"
-" * @param instance the instance being used for this create call\n"
-" * @return The primary key computed by CMP PM or null for BMP\n"
-" *\n"
-" * @throws Exception\n"
-" */\n"
-" Object createEntity(Method m,\n"
-" Object[] args,\n"
-" EntityEnterpriseContext instance)\n"
-" throws Exception;\n"
-" \n"
-" /**\n"
-" * This method is called when single entities are to be found. The\n"
-" * persistence manager must find out whether the wanted instance\n"
-" * is available in the persistence store, if so it returns the\n"
-" * primary key of the object.\n"
-" *\n"
-" * @param finderMethod the find method in the home interface that was\n"
-" * called\n"
-" * @param args any finder parameters\n"
-" * @param instance the instance to use for the finder call\n"
-" * @return a primary key representing the found entity\n"
-" *\n"
-" * @throws RemoteException thrown if some system exception occurs\n"
-" * @throws FinderException thrown if some heuristic problem occurs\n"
-" */\n"
-" Object findEntity(Method finderMethod,\n"
-" Object[] args,\n"
-" EntityEnterpriseContext instance)\n"
-" throws Exception;\n"
-" \n"
-" /**\n"
-" * This method is called when collections of entities are to be\n"
-" * found. The persistence manager must find out whether the wanted\n"
-" * instances are available in the persistence store, and if so it\n"
-" * must return a collection of primaryKeys.\n"
-" *\n"
-" * @param finderMethod the find method in the home interface that was\n"
-" * called\n"
-" * @param args any finder parameters\n"
-" * @param instance the instance to use for the finder call\n"
-" * @return an primary key collection representing the found\n"
-" * entities\n"
-" *\n"
-" * @throws RemoteException thrown if some system exception occurs\n"
-" * @throws FinderException thrown if some heuristic problem occurs\n"
-" */\n"
-" Collection findEntities(Method finderMethod,\n"
-" Object[] args,\n"
-" EntityEnterpriseContext instance)\n"
-" throws Exception;\n"
-" \n"
-" /**\n"
-" * This method is called when an entity shall be activated.\n"
-" *\n"
-" * <p>With the PersistenceManager factorization most EJB\n"
-" * calls should not exists However this calls permits us to\n"
-" * introduce optimizations in the persistence store. Particularly\n"
-" * the context has a \"PersistenceContext\" that a PersistenceStore\n"
-" * can use (JAWS does for smart updates) and this is as good a\n"
-" * callback as any other to set it up.\n"
-" * @param instance the instance to use for the activation\n"
-" *\n"
-" * @throws RemoteException thrown if some system exception occurs\n"
-" */\n"
-" void activateEntity(EntityEnterpriseContext instance)\n"
-" throws RemoteException;\n"
-" \n"
-" /**\n"
-" * This method is called whenever an entity shall be load from the\n"
-" * underlying storage. The persistence manager must load the state\n"
-" * from the underlying storage and then call ejbLoad on the\n"
-" * supplied instance.\n"
-" *\n"
-" * @param instance the instance to synchronize\n"
-" *\n"
-" * @throws RemoteException thrown if some system exception occurs\n"
-" */\n"
-" void loadEntity(EntityEnterpriseContext instance)\n"
-" throws RemoteException;\n"
-" \n"
-" /**\n"
-" * This method is used to determine if an entity should be stored.\n"
-" *\n"
-" * @param instance the instance to check\n"
-" * @return true, if the entity has been modified\n"
-" * @throws Exception thrown if some system exception occurs\n"
-" */\n"
-" boolean isModified(EntityEnterpriseContext instance)\n"
-" throws Exception;\n"
-" \n"
-" /**\n"
-" * This method is called whenever an entity shall be stored to the\n"
-" * underlying storage. The persistence manager must call ejbStore\n"
-" * on the supplied instance and then store the state to the\n"
-" * underlying storage.\n"
-" *\n"
-" * @param instance the instance to synchronize\n"
-" *\n"
-" * @throws RemoteException thrown if some system exception occurs\n"
-" */\n"
-" void storeEntity(EntityEnterpriseContext instance)\n"
-" throws RemoteException;\n"
-" \n"
-" /**\n"
-" * This method is called when an entity shall be passivate. The\n"
-" * persistence manager must call the ejbPassivate method on the\n"
-" * instance.\n"
-" *\n"
-" * <p>See the activate discussion for the reason for\n"
-" * exposing EJB callback * calls to the store.\n"
-" *\n"
-" * @param instance the instance to passivate\n"
-" *\n"
-" * @throws RemoteException thrown if some system exception occurs\n"
-" */\n"
-" void passivateEntity(EntityEnterpriseContext instance)\n"
-" throws RemoteException;\n"
-" \n"
-" /**\n"
-" * This method is called when an entity shall be removed from the\n"
-" * underlying storage. The persistence manager must call ejbRemove\n"
-" * on the instance and then remove its state from the underlying\n"
-" * storage.\n"
-" *\n"
-" * @param instance the instance to remove\n"
-" *\n"
-" * @throws RemoteException thrown if some system exception occurs\n"
-" * @throws RemoveException thrown if the instance could not be removed\n"
-" */\n"
-" void removeEntity(EntityEnterpriseContext instance)\n"
-" throws RemoteException, RemoveException;\n"
-"}"
+" extends ContainerPlugin\n"
+" {\n"
+" /**\n"
+" * Returns a new instance of "
+"the bean class or a subclass of the\n"
+" * bean class.\n"
+" *\n"
+" * @return the new instance\n"
+" *\n"
+" * @throws Exception\n"
+" */\n"
+" Object "
+"createBeanClassInstance() \n"
+" throws Exception;\n"
+" \n"
+" /**\n"
+" * Initializes the instance "
+"context.\n"
+" *\n"
+" * <p>This method is "
+"called before createEntity, and should\n"
+" * reset the value of all "
+"cmpFields to 0 or null.\n"
+" *\n"
+" * @param ctx\n"
+" *\n"
+" * @throws RemoteException\n"
+" */\n"
+" void initEntity"
+"(EntityEnterpriseContext ctx);\n"
+" \n"
+" /**\n"
+" * This method is called "
+"whenever an entity is to be created. The\n"
+" * persistence manager is "
+"responsible for handling the results\n"
+" * properly wrt the "
+"persistent store.\n"
+" *\n"
+" * @param m the create method "
+"in the home interface that was\n"
+" * called\n"
+" * @param args any create "
+"parameters\n"
+" * @param instance the "
+"instance being used for this create call\n"
+" * @return The primary key "
+"computed by CMP PM or null for BMP\n"
+" *\n"
+" * @throws Exception\n"
+" */\n"
+" Object createEntity(Method "
+"m,\n"
+" Object[] args,\n"
+" EntityEnterpriseContext "
+"instance)\n"
+" throws Exception;\n"
+" \n"
+" /**\n"
+" * This method is called when "
+"single entities are to be found. The\n"
+" * persistence manager must "
+"find out whether the wanted instance\n"
+" * is available in the "
+"persistence store, if so it returns the\n"
+" * primary key of the "
+"object.\n"
+" *\n"
+" * @param finderMethod the "
+"find method in the home interface that was\n"
+" * called\n"
+" * @param args any finder "
+"parameters\n"
+" * @param instance the "
+"instance to use for the finder call\n"
+" * @return a primary key "
+"representing the found entity\n"
+" *\n"
+" * @throws RemoteException "
+"thrown if some system exception occurs\n"
+" * @throws FinderException "
+"thrown if some heuristic problem occurs\n"
+" */\n"
+" Object findEntity(Method "
+"finderMethod,\n"
+" Object[] args,\n"
+" EntityEnterpriseContext "
+"instance)\n"
+" throws Exception;\n"
+" \n"
+" /**\n"
+" * This method is called when "
+"collections of entities are to be\n"
+" * found. The persistence "
+"manager must find out whether the wanted\n"
+" * instances are available in "
+"the persistence store, and if so it\n"
+" * must return a collection "
+"of primaryKeys.\n"
+" *\n"
+" * @param finderMethod the "
+"find method in the home interface that was\n"
+" * called\n"
+" * @param args any finder "
+"parameters\n"
+" * @param instance the "
+"instance to use for the finder call\n"
+" * @return an primary key "
+"collection representing the found\n"
+" * entities\n"
+" *\n"
+" * @throws RemoteException "
+"thrown if some system exception occurs\n"
+" * @throws FinderException "
+"thrown if some heuristic problem occurs\n"
+" */\n"
+" Collection findEntities"
+"(Method finderMethod,\n"
+" Object[] args,\n"
+" EntityEnterpriseContext "
+"instance)\n"
+" throws Exception;\n"
+" \n"
+" /**\n"
+" * This method is called when "
+"an entity shall be activated.\n"
+" *\n"
+" * <p>With the "
+"PersistenceManager factorization most EJB\n"
+" * calls should not exists "
+"However this calls permits us to\n"
+" * introduce optimizations in "
+"the persistence store. Particularly\n"
+" * the context has a "
+"\"PersistenceContext\" that a PersistenceStore\n"
+" * can use (JAWS does for "
+"smart updates) and this is as good a\n"
+" * callback as any other to "
+"set it up.\n"
+" * @param instance the "
+"instance to use for the activation\n"
+" *\n"
+" * @throws RemoteException "
+"thrown if some system exception occurs\n"
+" */\n"
+" void activateEntity"
+"(EntityEnterpriseContext instance)\n"
+" throws RemoteException;\n"
+" \n"
+" /**\n"
+" * This method is called "
+"whenever an entity shall be load from the\n"
+" * underlying storage. The "
+"persistence manager must load the state\n"
+" * from the underlying "
+"storage and then call ejbLoad on the\n"
+" * supplied instance.\n"
+" *\n"
+" * @param instance the "
+"instance to synchronize\n"
+" *\n"
+" * @throws RemoteException "
+"thrown if some system exception occurs\n"
+" */\n"
+" void loadEntity"
+"(EntityEnterpriseContext instance)\n"
+" throws RemoteException;\n"
+" \n"
+" /**\n"
+" * This method is used to "
+"determine if an entity should be stored.\n"
+" *\n"
+" * @param instance the "
+"instance to check\n"
+" * @return true, if the "
+"entity has been modified\n"
+" * @throws Exception thrown "
+"if some system exception occurs\n"
+" */\n"
+" boolean isModified"
+"(EntityEnterpriseContext instance)\n"
+" throws Exception;\n"
+" \n"
+" /**\n"
+" * This method is called "
+"whenever an entity shall be stored to the\n"
+" * underlying storage. The "
+"persistence manager must call ejbStore\n"
+" * on the supplied instance "
+"and then store the state to the\n"
+" * underlying storage.\n"
+" *\n"
+" * @param instance the "
+"instance to synchronize\n"
+" *\n"
+" * @throws RemoteException "
+"thrown if some system exception occurs\n"
+" */\n"
+" void storeEntity"
+"(EntityEnterpriseContext instance)\n"
+" throws RemoteException;\n"
+" \n"
+" /**\n"
+" * This method is called when "
+"an entity shall be passivate. The\n"
+" * persistence manager must "
+"call the ejbPassivate method on the\n"
+" * instance.\n"
+" *\n"
+" * <p>See the activate "
+"discussion for the reason for\n"
+" * exposing EJB callback * "
+"calls to the store.\n"
+" *\n"
+" * @param instance the "
+"instance to passivate\n"
+" *\n"
+" * @throws RemoteException "
+"thrown if some system exception occurs\n"
+" */\n"
+" void passivateEntity"
+"(EntityEnterpriseContext instance)\n"
+" throws RemoteException;\n"
+" \n"
+" /**\n"
+" * This method is called when "
+"an entity shall be removed from the\n"
+" * underlying storage. The "
+"persistence manager must call ejbRemove\n"
+" * on the instance and then "
+"remove its state from the underlying\n"
+" * storage.\n"
+" *\n"
+" * @param instance the "
+"instance to remove\n"
+" *\n"
+" * @throws RemoteException "
+"thrown if some system exception occurs\n"
+" * @throws RemoveException "
+"thrown if the instance could not be removed\n"
+" */\n"
+" void removeEntity"
+"(EntityEnterpriseContext instance)\n"
+" throws RemoteException, "
+"RemoveException;\n"
+" }"
msgstr ""
#. Tag: para
@@ -3916,23 +4199,30 @@
#, no-c-format
msgid ""
"public interface StatefulSessionPersistenceManager \n"
-" extends ContainerPlugin\n"
-"{\n"
-" public void createSession(Method m, Object[] args,\n"
-" StatefulSessionEnterpriseContext ctx)\n"
-" throws Exception;\n"
-" \n"
-" public void activateSession(StatefulSessionEnterpriseContext ctx)\n"
-" throws RemoteException;\n"
-" \n"
-" public void passivateSession(StatefulSessionEnterpriseContext ctx)\n"
-" throws RemoteException;\n"
-" \n"
-" public void removeSession(StatefulSessionEnterpriseContext ctx)\n"
-" throws RemoteException, RemoveException;\n"
-" \n"
-" public void removePassivated(Object key);\n"
-"}"
+" extends ContainerPlugin\n"
+" {\n"
+" public void createSession"
+"(Method m, Object[] args,\n"
+" StatefulSessionEnterpriseContext "
+"ctx)\n"
+" throws Exception;\n"
+" \n"
+" public void activateSession"
+"(StatefulSessionEnterpriseContext ctx)\n"
+" throws RemoteException;\n"
+" \n"
+" public void passivateSession"
+"(StatefulSessionEnterpriseContext ctx)\n"
+" throws RemoteException;\n"
+" \n"
+" public void removeSession"
+"(StatefulSessionEnterpriseContext ctx)\n"
+" throws RemoteException, "
+"RemoveException;\n"
+" \n"
+" public void removePassivated"
+"(Object key);\n"
+" }"
msgstr ""
#. Tag: para
@@ -4136,37 +4426,99 @@
#. Tag: programlisting
#: J2EE_EJBs_On_JBOSS.xml:1241
-#, no-c-format
+#, fuzzy, no-c-format
msgid ""
"<container-interceptors>\n"
-" <interceptor>org.jboss.ejb.plugins."
+" <interceptor>org.jboss.ejb.plugins."
"ProxyFactoryFinderInterceptor</interceptor>\n"
-" <interceptor>org.jboss.ejb.plugins.LogInterceptor</"
-"interceptor>\n"
-" <interceptor>org.jboss.ejb.plugins.SecurityInterceptor</"
-"interceptor>\n"
-" <interceptor>org.jboss.ejb.plugins.TxInterceptorCMT</"
-"interceptor>\n"
-" <interceptor>org.jboss.ejb.plugins.CallValidationInterceptor</"
-"interceptor>\n"
-" <interceptor metricsEnabled=\"true\">org.jboss.ejb.plugins."
-"MetricsInterceptor</interceptor>\n"
-" <interceptor>org.jboss.ejb.plugins.EntityCreationInterceptor</"
-"interceptor>\n"
-" <interceptor>org.jboss.ejb.plugins.EntityLockInterceptor</"
-"interceptor>\n"
-" <interceptor>org.jboss.ejb.plugins.EntityInstanceInterceptor</"
-"interceptor>\n"
-" <interceptor>org.jboss.ejb.plugins.EntityReentranceInterceptor</"
-"interceptor>\n"
-" <interceptor>org.jboss.resource.connectionmanager."
-"CachedConnectionInterceptor</interceptor>\n"
-" <interceptor>org.jboss.ejb.plugins."
+" <interceptor>org.jboss.ejb.plugins."
+"LogInterceptor</interceptor>\n"
+" <interceptor>org.jboss.ejb.plugins."
+"SecurityInterceptor</interceptor>\n"
+" <interceptor>org.jboss.ejb.plugins."
+"TxInterceptorCMT</interceptor>\n"
+" <interceptor>org.jboss.ejb.plugins."
+"CallValidationInterceptor</interceptor>\n"
+" <interceptor metricsEnabled=\"true\">"
+"org.jboss.ejb.plugins.MetricsInterceptor</interceptor>\n"
+" <interceptor>org.jboss.ejb.plugins."
+"EntityCreationInterceptor</interceptor>\n"
+" <interceptor>org.jboss.ejb.plugins."
+"EntityLockInterceptor</interceptor>\n"
+" <interceptor>org.jboss.ejb.plugins."
+"EntityInstanceInterceptor</interceptor>\n"
+" <interceptor>org.jboss.ejb.plugins."
+"EntityReentranceInterceptor</interceptor>\n"
+" <interceptor>org.jboss.resource."
+"connectionmanager.CachedConnectionInterceptor</interceptor>\n"
+" <interceptor>org.jboss.ejb.plugins."
"EntitySynchronizationInterceptor</interceptor>\n"
-" <interceptor>org.jboss.ejb.plugins.cmp.jdbc."
-"JDBCRelationInterceptor</interceptor>\n"
-"</container-interceptors>"
+" <interceptor>org.jboss.ejb.plugins.cmp."
+"jdbc.JDBCRelationInterceptor</interceptor>\n"
+" </container-interceptors>"
msgstr ""
+"<jboss>\n"
+" <session>\n"
+" <ejb-name>nextgen_RetryInterceptorStatelessSession</ejb-"
+"name>\n"
+" <invoker-bindings>\n"
+" <invoker>\n"
+" <invoker-proxy-binding-name>\n"
+" clustered-retry-stateless-rmi-invoker\n"
+" </invoker-proxy-binding-name>\n"
+" <jndi-name>\n"
+" nextgen_RetryInterceptorStatelessSession\n"
+" </jndi-name>\n"
+" </invoker>\n"
+" </invoker-bindings>\n"
+" <clustered>true</clustered>\n"
+" </session>\n"
+"\n"
+" <invoker-proxy-binding>\n"
+" <name>clustered-retry-stateless-rmi-invoker</name>\n"
+" <invoker-mbean>jboss:service=invoker,type=jrmpha</invoker-"
+"mbean>\n"
+" <proxy-factory>org.jboss.proxy.ejb.ProxyFactoryHA</proxy-"
+"factory>\n"
+" <proxy-factory-config>\n"
+" <client-interceptors>\n"
+" <home>\n"
+" <interceptor>\n"
+" org.jboss.proxy.ejb.HomeInterceptor\n"
+" </interceptor>\n"
+" <interceptor>\n"
+" org.jboss.proxy.SecurityInterceptor\n"
+" </interceptor>\n"
+" <interceptor>\n"
+" org.jboss.proxy.TransactionInterceptor\n"
+" </interceptor>\n"
+" <interceptor>\n"
+" org.jboss.proxy.ejb.RetryInterceptor\n"
+" </interceptor>\n"
+" <interceptor>\n"
+" org.jboss.invocation.InvokerInterceptor\n"
+" </interceptor>\n"
+" </home>\n"
+" <bean>\n"
+" <interceptor>\n"
+" org.jboss.proxy.ejb.StatelessSessionInterceptor\n"
+" </interceptor>\n"
+" <interceptor>\n"
+" org.jboss.proxy.SecurityInterceptor\n"
+" </interceptor>\n"
+" <interceptor>\n"
+" org.jboss.proxy.TransactionInterceptor\n"
+" </interceptor>\n"
+" <interceptor>\n"
+" org.jboss.proxy.ejb.RetryInterceptor\n"
+" </interceptor>\n"
+" <interceptor>\n"
+" org.jboss.invocation.InvokerInterceptor\n"
+" </interceptor>\n"
+" </bean>\n"
+" </client-interceptors>\n"
+" </proxy-factory-config>\n"
+" </invoker-proxy-binding>"
#. Tag: para
#: J2EE_EJBs_On_JBOSS.xml:1242
@@ -4227,7 +4579,7 @@
"Finding deadlock problems and resolving them is the topic of this section. "
"We will describe what deadlocking MBeans, how you can detect it within your "
"application, and how you can resolve deadlocks. Deadlock can occur when two "
-"or more threads have locks on shared resources. <xref linkend=\"Deadlock_-"
+"or more threads have locks on shared resources. <xref linkend=\"Deadlock-"
"Deadlock_definition_example\"/> illustrates a simple deadlock scenario. "
"Here, <literal>Thread 1</literal> has the lock for <literal>Bean A</"
"literal>, and <literal>Thread 2</literal> has the lock for <literal>Bean B</"
@@ -4355,21 +4707,24 @@
#, no-c-format
msgid ""
"try {\n"
-" // ...\n"
-"} catch (RemoteException ex) {\n"
-" Throwable cause = null;\n"
-" RemoteException rex = ex;\n"
-" while (rex.detail != null) {\n"
-" cause = rex.detail;\n"
-" if (cause instanceof ApplicationDeadlockException) {\n"
-" // ... We have deadlock, force a retry of the transaction.\n"
-" break;\n"
-" }\n"
-" if (cause instanceof RemoteException) {\n"
-" rex = (RemoteException)cause;\n"
-" }\n"
-" }\n"
-"}"
+" // ...\n"
+" } catch (RemoteException ex) {\n"
+" Throwable cause = null;\n"
+" RemoteException rex = ex;\n"
+" while (rex.detail != null) {\n"
+" cause = rex.detail;\n"
+" if (cause instanceof "
+"ApplicationDeadlockException) {\n"
+" // ... We have deadlock, force a "
+"retry of the transaction.\n"
+" break;\n"
+" }\n"
+" if (cause instanceof "
+"RemoteException) {\n"
+" rex = (RemoteException)cause;\n"
+" }\n"
+" }\n"
+" }"
msgstr ""
#. Tag: title
@@ -4393,7 +4748,8 @@
#, no-c-format
msgid ""
"<mbean code=\"org.jboss.monitor.EntityLockMonitor\"\n"
-" name=\"jboss.monitor:name=EntityLockMonitor\"/>"
+" name=\"jboss.monitor:"
+"name=EntityLockMonitor\"/>"
msgstr ""
#. Tag: para
@@ -4551,18 +4907,44 @@
#. Tag: programlisting
#: J2EE_EJBs_On_JBOSS.xml:1417
-#, no-c-format
+#, fuzzy, no-c-format
msgid ""
"<jboss>\n"
-" <enterprise-beans>\n"
-" <entity>\n"
-" <ejb-name>MyEntityBean</ejb-name>\n"
-" <jndi-name>MyEntityHomeRemote</jndi-name>\n"
-" <read-only>True</read-only>\n"
-" </entity>\n"
-" </enterprise-beans>\n"
+" <enterprise-beans>\n"
+" <entity>\n"
+" <ejb-name>"
+"MyEntityBean</ejb-name>\n"
+" <jndi-name>"
+"MyEntityHomeRemote</jndi-name>\n"
+" <read-only>True</"
+"read-only>\n"
+" </entity>\n"
+" </enterprise-beans>\n"
+" </jboss>"
+msgstr ""
+"<jboss> \n"
+" <enterprise-beans> \n"
+" <entity> \n"
+" <ejb-name>nextgen.EnterpriseEntity</ejb-"
+"name> \n"
+" <jndi-name>nextgen.EnterpriseEntity</jndi-"
+"name> \n"
+" <clustered>True</clustered> \n"
+" <cluster-config> \n"
+" <partition-name>DefaultPartition</partition-"
+"name> \n"
+" <home-load-balance-policy> \n"
+" org.jboss.ha.framework.interfaces."
+"RoundRobin \n"
+" </home-load-balance-policy> \n"
+" <bean-load-balance-policy> \n"
+" org.jboss.ha.framework.interfaces."
+"FirstAvailable \n"
+" </bean-load-balance-policy> \n"
+" </cluster-config> \n"
+" </entity> \n"
+" </enterprise-beans> \n"
"</jboss>"
-msgstr ""
#. Tag: title
#: J2EE_EJBs_On_JBOSS.xml:1422
@@ -4596,24 +4978,29 @@
#, fuzzy, no-c-format
msgid ""
"<jboss>\n"
-" <enterprise-beans>\n"
-" <entity>\n"
-" <ejb-name>nextgen.EnterpriseEntity</ejb-name>\n"
-" <jndi-name>nextgen.EnterpriseEntity</jndi-name>\n"
-" <method-attributes>\n"
-" <method>\n"
-" <method-name>get*</method-name>\n"
-" <read-only>true</read-only>\n"
-" </method>\n"
-" <method>\n"
-" <method-name>anotherReadOnlyMethod</method-"
-"name>\n"
-" <read-only>true</read-only>\n"
-" </method>\n"
-" </method-attributes>\n"
-" </entity>\n"
-" </enterprise-beans>\n"
-"</jboss>"
+" <enterprise-beans>\n"
+" <entity>\n"
+" <ejb-name>nextgen."
+"EnterpriseEntity</ejb-name>\n"
+" <jndi-name>nextgen."
+"EnterpriseEntity</jndi-name>\n"
+" <method-attributes>\n"
+" <method>\n"
+" <method-name>get*</"
+"method-name>\n"
+" <read-only>true</"
+"read-only>\n"
+" </method>\n"
+" <method>\n"
+" <method-name>"
+"anotherReadOnlyMethod</method-name>\n"
+" <read-only>true</"
+"read-only>\n"
+" </method>\n"
+" </method-attributes>\n"
+" </entity>\n"
+" </enterprise-beans>\n"
+" </jboss>"
msgstr ""
"<jboss> \n"
" <enterprise-beans> \n"
@@ -4700,23 +5087,29 @@
#, fuzzy, no-c-format
msgid ""
"<jboss>\n"
-" <enterprise-beans>\n"
-" <entity>\n"
-" <ejb-name>MyCMP2Bean</ejb-name>\n"
-" <jndi-name>MyCMP2</jndi-name>\n"
-" <configuration-name>\n"
-" Instance Per Transaction CMP 2.x EntityBean\n"
-" </configuration-name>\n"
-" </entity>\n"
-" <entity>\n"
-" <ejb-name>MyBMPBean</ejb-name>\n"
-" <jndi-name>MyBMP</jndi-name>\n"
-" <configuration-name>\n"
-" Instance Per Transaction BMP EntityBean\n"
-" </configuration-name>\n"
-" </entity>\n"
-" </enterprise-beans>\n"
-"</jboss>"
+" <enterprise-beans>\n"
+" <entity>\n"
+" <ejb-name>"
+"MyCMP2Bean</ejb-name>\n"
+" <jndi-name>MyCMP2</"
+"jndi-name>\n"
+" <configuration-name>\n"
+" Instance Per Transaction CMP "
+"2.x EntityBean\n"
+" </configuration-name>\n"
+" </entity>\n"
+" <entity>\n"
+" <ejb-name>"
+"MyBMPBean</ejb-name>\n"
+" <jndi-name>MyBMP</"
+"jndi-name>\n"
+" <configuration-name>\n"
+" Instance Per Transaction BMP "
+"EntityBean\n"
+" </configuration-name>\n"
+" </entity>\n"
+" </enterprise-beans>\n"
+" </jboss>"
msgstr ""
"<jboss> \n"
" <enterprise-beans> \n"
@@ -4893,15 +5286,15 @@
msgid ""
"<mbean code=\"org.jboss.ejb.txtimer.EJBTimerServiceImpl\" name=\"jboss."
"ejb:service=EJBTimerService\">\n"
-" <attribute name=\"RetryPolicy\">jboss.ejb:service=EJBTimerService,"
-"retryPolicy=fixedDelay</attribute>\n"
-" <attribute name=\"PersistencePolicy\">jboss.ejb:"
-"service=EJBTimerService,persistencePolicy=database</attribute>\n"
-" <attribute name=\"TimerIdGeneratorClassName\">org.jboss.ejb."
-"txtimer.BigIntegerTimerIdGenerator</attribute>\n"
-" <attribute name=\"TimedObjectInvokerClassName\">org.jboss.ejb."
-"txtimer.TimedObjectInvokerImpl</attribute>\n"
-"</mbean>"
+" <attribute name=\"RetryPolicy\">jboss.ejb:"
+"service=EJBTimerService,retryPolicy=fixedDelay</attribute>\n"
+" <attribute name=\"PersistencePolicy\">jboss."
+"ejb:service=EJBTimerService,persistencePolicy=database</attribute>\n"
+" <attribute name=\"TimerIdGeneratorClassName\">"
+"org.jboss.ejb.txtimer.BigIntegerTimerIdGenerator</attribute>\n"
+" <attribute name=\"TimedObjectInvokerClassName"
+"\">org.jboss.ejb.txtimer.TimedObjectInvokerImpl</attribute>\n"
+" </mbean>"
msgstr ""
#. Tag: para
@@ -4976,10 +5369,11 @@
#, no-c-format
msgid ""
"<mbean code=\"org.jboss.ejb.txtimer.FixedDelayRetryPolicy\"\n"
-" name=\"jboss.ejb:service=EJBTimerService,retryPolicy=fixedDelay"
-"\">\n"
-" <attribute name=\"Delay\">100</attribute>\n"
-"</mbean>"
+" name=\"jboss.ejb:service=EJBTimerService,"
+"retryPolicy=fixedDelay\">\n"
+" <attribute name=\"Delay\">100</"
+"attribute>\n"
+" </mbean>"
msgstr ""
#. Tag: para
@@ -5012,7 +5406,8 @@
#, no-c-format
msgid ""
"<mbean code=\"org.jboss.ejb.txtimer.NoopPersistencePolicy\" \n"
-" name=\"jboss.ejb:service=EJBTimerService,persistencePolicy=noop\"/>"
+" name=\"jboss.ejb:service=EJBTimerService,"
+"persistencePolicy=noop\"/>"
msgstr ""
#. Tag: para
@@ -5028,15 +5423,17 @@
#, no-c-format
msgid ""
"<mbean code=\"org.jboss.ejb.txtimer.DatabasePersistencePolicy\" \n"
-" name=\"jboss.ejb:service=EJBTimerService,persistencePolicy=database"
-"\">\n"
-" <!-- DataSource JNDI name -->\n"
-" <depends optional-attribute-name=\"DataSource\">jboss.jca:"
-"service=DataSourceBinding,name=DefaultDS</depends>\n"
-" <!-- The plugin that handles database persistence -->\n"
-" <attribute name=\"DatabasePersistencePlugin\">org.jboss.ejb."
-"txtimer.GeneralPurposeDatabasePersistencePlugin</attribute>\n"
-"</mbean>"
+" name=\"jboss.ejb:service=EJBTimerService,"
+"persistencePolicy=database\">\n"
+" <!-- DataSource JNDI name -->\n"
+" <depends optional-attribute-name=\"DataSource"
+"\">jboss.jca:service=DataSourceBinding,name=DefaultDS</depends>\n"
+" <!-- The plugin that handles database persistence "
+"-->\n"
+" <attribute name=\"DatabasePersistencePlugin\">"
+"org.jboss.ejb.txtimer.GeneralPurposeDatabasePersistencePlugin</"
+"attribute>\n"
+" </mbean>"
msgstr ""
#. Tag: para
Modified: projects/docs/trunk/Server_Configuration_Guide/zh-CN/Naming.po
===================================================================
--- projects/docs/trunk/Server_Configuration_Guide/zh-CN/Naming.po 2007-12-03 01:16:23 UTC (rev 67754)
+++ projects/docs/trunk/Server_Configuration_Guide/zh-CN/Naming.po 2007-12-03 01:16:56 UTC (rev 67755)
@@ -8,8 +8,8 @@
msgstr ""
"Project-Id-Version: Naming\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2007-11-05 06:04+0000\n"
-"PO-Revision-Date: 2007-11-30 09:26+1000\n"
+"POT-Creation-Date: 2007-12-03 00:52+0000\n"
+"PO-Revision-Date: 2007-12-03 10:43+1000\n"
"Last-Translator: Xi HUANG <xhuang at redhat.com>\n"
"Language-Team: <zh at li.org>\n"
"MIME-Version: 1.0\n"
@@ -160,8 +160,8 @@
"的相对路径来命名,路径里的每一部分都用斜杠(\"<literal>/</literal>\")来分隔。"
"文件路径从左至右排列。例如,<literal>/usr/jboss/readme.txt</literal>,命名了"
"文件系统的根目录下的目录 <literal>usr</literal> 下的子目录 <literal>jboss</"
-"literal> 里的一个 <literal>readme.txt</literal> 文件。JBoss 把 UNIX 风格"
-"的命名空间作为它的命名规则。"
+"literal> 里的一个 <literal>readme.txt</literal> 文件。JBoss 把 UNIX 风格的命"
+"名空间作为它的命名规则。"
#. Tag: para
#: Naming.xml:33
@@ -339,8 +339,10 @@
#. Tag: para
#: Naming.xml:68
#, no-c-format
-msgid "All <literal>jndi.properties</literal> resource files found on the classpath."
-msgstr "在 classpath 上发现的所有 <literal>jndi.properties</literal> 资源文件。"
+msgid ""
+"All <literal>jndi.properties</literal> resource files found on the classpath."
+msgstr ""
+"在 classpath 上发现的所有 <literal>jndi.properties</literal> 资源文件。"
#. Tag: para
#: Naming.xml:73
@@ -440,7 +442,8 @@
"literal> 接口的应用。它是一个可以远程访问的客户端/服务器实现。这个实现进行了"
"优化,使得 JBossNS 服务器运行的同一 VM 内的访问不需要调用套接字。同一 VM 内的"
"访问通过一个作为全局 singleton 的可用的对象引用来实现。<xref linkend="
-"\"The_JBossNS_Architecture-Key_components_in_the_JBossNS_architecture.\"/> 说明了 JBossNS 实现里的一些关键类和它们的关系。"
+"\"The_JBossNS_Architecture-Key_components_in_the_JBossNS_architecture.\"/> 说"
+"明了 JBossNS 实现里的一些关键类和它们的关系。"
#. Tag: title
#: Naming.xml:97
@@ -1231,19 +1234,19 @@
#. Tag: para
#: Naming.xml:347
-#, no-c-format
+#, fuzzy, no-c-format
msgid ""
"The JNDI <literal>Context</literal> implementation returned by the "
"<literal>HttpNamingContextFactory</literal> is a proxy that delegates "
-"invocations made on it to a bridge servlet which forwards the invocation to "
-"the <literal>NamingService</literal> through the JMX bus and marshalls the "
-"reply back over HTTP. The proxy needs to know what the URL of the bridge "
-"servlet is in order to operate. This value may have been bound on the server "
-"side if the JBoss web server has a well known public interface. If the JBoss "
-"web server is sitting behind one or more firewalls or proxies, the proxy "
-"cannot know what URL is required. In this case, the proxy will be associated "
-"with a system property value that must be set in the client VM. For more "
-"information on the operation of JNDI over HTTP see <xref linkend="
+"invocations made on it to a bridge servlet. The bridge sevlet forwards the "
+"invocation to the <literal>NamingService</literal> through the JMX bus and "
+"marshalls the reply back over HTTP. The proxy needs to know what the URL of "
+"the bridge servlet is in order to operate. This value may have been bound on "
+"the server side if the JBoss web server has a well known public interface. "
+"If the JBoss web server is sitting behind one or more firewalls or proxies, "
+"the proxy cannot know what URL is required. In this case, the proxy will be "
+"associated with a system property value that must be set in the client VM. "
+"For more information on the operation of JNDI over HTTP see <xref linkend="
"\"JNDI_over_HTTP-Accessing_JNDI_over_HTTP\"/>."
msgstr ""
"<literal>HttpNamingContextFactory</literal> 返回的 JNDI <literal>Context</"
@@ -1253,8 +1256,8 @@
"有一个众所周知的公用接口,这个值可能已经被绑定在服务器端了。如果 JBoss web 服"
"务器处于一个或多个防火墙或代理服务器后面,这个代理就不可能知道它要求的 URL 是"
"什么。在这种情况下,代理将与一个必须在客户端设置的系统属性值相关联。请参考 "
-"<xref linkend="
-"\"JNDI_over_HTTP-Accessing_JNDI_over_HTTP\"/> 里关于 HTTP 上的 JNDI 操作的更多信息。"
+"<xref linkend=\"JNDI_over_HTTP-Accessing_JNDI_over_HTTP\"/> 里关于 HTTP 上的 "
+"JNDI 操作的更多信息。"
#. Tag: title
#: Naming.xml:353
@@ -1529,12 +1532,11 @@
"literal> interface implementation."
msgstr ""
"在阅读这个配置之前,让我们来看看 <literal>http-invoker</literal> 服务的操作。"
-"<xref linkend="
-"\"Accessing_JNDI_over_HTTP-"
-"The_HTTP_invoker_proxyserver_structure_for_a_JNDI_Context\"/> 展示了 JBoss JNDI 代理和它和 "
-"<literal>http-invoker</literal> 的 JBoss 服务器端组件之间的关系的逻辑视图。"
-"把 <literal>Context.INITIAL_CONTEXT_FACTORY</literal> 属性设置为 "
-"<literal>org.jboss.naming.HttpNamingContextFactory</literal> 并把 "
+"<xref linkend=\"Accessing_JNDI_over_HTTP-"
+"The_HTTP_invoker_proxyserver_structure_for_a_JNDI_Context\"/> 展示了 JBoss "
+"JNDI 代理和它和 <literal>http-invoker</literal> 的 JBoss 服务器端组件之间的关"
+"系的逻辑视图。把 <literal>Context.INITIAL_CONTEXT_FACTORY</literal> 属性设置"
+"为 <literal>org.jboss.naming.HttpNamingContextFactory</literal> 并把 "
"<literal>Context.PROVIDER_URL</literal> 设置为 "
"<literal>NamingFactoryServlet</literal> 的 HTTP URL,用 "
"<literal>InitialContext</literal> 从 <literal>NamingFactoryServlet</literal> "
@@ -1572,8 +1574,10 @@
"illustrates the relationship between configuration files and the "
"corresponding components."
msgstr ""
-"有几个配置的值需要设置成与所有的组件相关联,<xref linkend=\"Accessing_JNDI_over_HTTP-"
-"The_relationship_between_configuration_files_and_JNDIHTTP_component\"/> 说明了配置文件和对应的组件之间的关系。"
+"有几个配置的值需要设置成与所有的组件相关联,<xref linkend="
+"\"Accessing_JNDI_over_HTTP-"
+"The_relationship_between_configuration_files_and_JNDIHTTP_component\"/> 说明"
+"了配置文件和对应的组件之间的关系。"
#. Tag: title
#: Naming.xml:442
@@ -1729,7 +1733,7 @@
#. Tag: para
#: Naming.xml:495
-#, no-c-format
+#, fuzzy, no-c-format
msgid ""
"A <literal>namingProxyMBean</literal> initialization parameter that maps to "
"the <literal>HttpProxyFactory</literal> MBean name. This is used by the "
@@ -1737,7 +1741,7 @@
"literal> proxy which it will return in response to HTTP posts. For the "
"default <literal>http-invoker.sar/META-INF/jboss-service.xml</literal> "
"settings the name <literal>jboss:service=invoker,type=http,target=Naming</"
-"literal>."
+"literal> is used."
msgstr ""
"一个映射到 <literal>HttpProxyFactory</literal> MBean 名的 "
"<literal>namingProxyMBean</literal> 初始参数。它被 "
@@ -1917,8 +1921,8 @@
"使用 JNDI 的客户要求最少设置一个 HTTPS URL 协议的处理程序。我们将为 HTTPS 使"
"用 Java Secure Socket Extension (JSSE)。JSSE 文档很好地描述了使用 HTTPS 所必"
"需的事情,配置 <xref linkend=\"Accessing_JNDI_over_HTTPS-"
-"A_JNDI_client_that_uses_HTTPS_as_the_transport\"/> 里的示例客户需要下"
-"面的步骤:"
+"A_JNDI_client_that_uses_HTTPS_as_the_transport\"/> 里的示例客户需要下面的步"
+"骤:"
#. Tag: para
#: Naming.xml:536
@@ -2145,7 +2149,8 @@
"<literal>all</literal> 里的 <literal>http-invoker.sar/invoker.war</literal> "
"目录下。要启用对 JNDI 的安全访问,你需要编辑 <literal>invoker.war/WEB-INF/"
"web.xml</literal> 描述符并删除所有的不安全的 servlet 映射。例如,如果用户已经"
-"被验证并充当 <literal>HttpInvoker</literal> 的角色时,<xref linkend=\"Securing_Access_to_JNDI_over_HTTP-An_example_web."
+"被验证并充当 <literal>HttpInvoker</literal> 的角色时,<xref linkend="
+"\"Securing_Access_to_JNDI_over_HTTP-An_example_web."
"xml_descriptor_for_secured_access_to_the_JNDI_servlets\"/> 描述符只允许对 "
"<literal>invoker.war</literal> servlets 的访问。"
@@ -2741,12 +2746,12 @@
#. Tag: para
#: Naming.xml:627
-#, no-c-format
+#, fuzzy, no-c-format
msgid ""
"This binds the text string \"<literal>Hello, JNDI!</literal>\" under the "
"JNDI name <literal>bindexample/message</literal>. An application would look "
"up the value just as it would for any other JNDI value. The <literal>trim</"
-"literal> attribute specifies that leading and trailing whitespace should be "
+"literal> attribute specifies that leading and trailing whitespaces should be "
"ignored. The use of the attribute here is purely for illustrative purposes "
"as the default value is true."
msgstr ""
@@ -2997,7 +3002,8 @@
msgid ""
"<emphasis role=\"bold\">JndiName</emphasis>: The JNDI name under which the "
"external context is to be bound."
-msgstr "<emphasis role=\"bold\">JndiName</emphasis>:外部的上下文绑定的 JNDI 名。"
+msgstr ""
+"<emphasis role=\"bold\">JndiName</emphasis>:外部的上下文绑定的 JNDI 名。"
#. Tag: para
#: Naming.xml:686
@@ -3276,12 +3282,12 @@
#. Tag: para
#: Naming.xml:752
-#, no-c-format
+#, fuzzy, no-c-format
msgid ""
-"Note that the use the Sun JNDI service providers, which must be downloaded "
-"from <ulink url=\"http://java.sun.com/products/jndi/serviceproviders.html"
-"\"></ulink>. The provider JARs should be placed in the server configuration "
-"<literal>lib</literal> directory."
+"Note that you need to use the Sun JNDI service providers, which must be "
+"downloaded from <ulink url=\"http://java.sun.com/products/jndi/"
+"serviceproviders.html\"></ulink>. The provider JARs should be placed in the "
+"server configuration <literal>lib</literal> directory."
msgstr ""
"请注意对 Sun JNDI 服务提供者的使用,它必须从 <ulink url=\"http://java.sun."
"com/products/jndi/serviceproviders.html\"></ulink> 里下载。提供者 JARs 应该存"
@@ -3310,8 +3316,8 @@
"视图接口一样。用 JNDIView MBean 查看 JBoss JNDI 命名空间,你需要用 http 接口"
"连接到 JMX 代理视图。缺省的设定是:<literal>http://localhost:8080/jmx-"
"console/</literal>。在这个网页上,你将看到一个列出按域名排序的注册的 MBeans "
-"的部分。它应该和 <xref linkend=\"The_org.jboss.naming."
-"JNDIView_MBean-The_JMX_Console_view_of_the_configured_JBoss_MBeans\"/> 展示的类似。"
+"的部分。它应该和 <xref linkend=\"The_org.jboss.naming.JNDIView_MBean-"
+"The_JMX_Console_view_of_the_configured_JBoss_MBeans\"/> 展示的类似。"
#. Tag: title
#: Naming.xml:763
@@ -3329,8 +3335,8 @@
"The_JMX_Console_view_of_the_JNDIView_MBean\"/>."
msgstr ""
"选择带你进入 JNDIView MBean 视图的 JNDIView 链接,它将有 JNDIView MBean 操作"
-"的一个列表。这个视图应该和 <xref linkend=\"The_org.jboss.naming.JNDIView_MBean-"
-"The_JMX_Console_view_of_the_JNDIView_MBean\"/> 展示的类似。"
+"的一个列表。这个视图应该和 <xref linkend=\"The_org.jboss.naming."
+"JNDIView_MBean-The_JMX_Console_view_of_the_JNDIView_MBean\"/> 展示的类似。"
#. Tag: title
#: Naming.xml:774
@@ -3351,8 +3357,7 @@
"list 操作用简单的文本视图的方式把 JBoss 服务器的 JNDI 命名空间输出到一个 "
"HTML 页面上。调用 list 操作会产生和 <xref linkend=\"The_org.jboss.naming."
"JNDIView_MBean-The_JMX_Console_view_of_the_JNDIView_list_operation_output\"/"
-"> "
-"类似的输出。"
+"> 类似的输出。"
#. Tag: title
#: Naming.xml:785
@@ -3368,8 +3373,7 @@
#. Tag: para
#: Naming.xml:798
-#, no-c-format
-#, fuzzy
+#, fuzzy, no-c-format
msgid ""
"JNDI is a fundamental aspect of the J2EE specifications. One key usage is "
"the isolation of J2EE component code from the environment in which the code "
@@ -3381,7 +3385,11 @@
"available to the container components in the form of JNDI Context. The ENC "
"is utilized by the participants involved in the life cycle of a J2EE "
"component in the following ways."
-msgstr "JNDI 是 J2EE 规格的一个基本概念。其关键用途是把 J2EE 的组件代码从部署环境中分离。使用应用程序组件的环境允许对组件进行定制而不需要访问或修改组件的源码。应用程序组件环境被称为 ENC,即企业命名上下文。应用程序组件容器负责使 ENC 以 JNDI 上下文的形式为容器组件所使用。ENC "
+msgstr ""
+"JNDI 是 J2EE 规格的一个基本概念。其关键用途是把 J2EE 的组件代码从部署环境中分"
+"离。使用应用程序组件的环境允许对组件进行定制而不需要访问或修改组件的源码。应"
+"用程序组件环境被称为 ENC,即企业命名上下文。应用程序组件容器负责使 ENC 以 "
+"JNDI 上下文的形式为容器组件所使用。ENC "
#. Tag: para
#: Naming.xml:803
@@ -3392,12 +3400,13 @@
"for the component to specify the required ENC entries. The entries are "
"declarations of the information and resources the component requires at "
"runtime."
-msgstr "应用程序组件的商业逻辑应该通过 ENC 进行访问。组件提供者使用标准的部署描述符来指定所需的 ENC 条目。这些条目是组件在运行时所需的信息和资源的声明。"
+msgstr ""
+"应用程序组件的商业逻辑应该通过 ENC 进行访问。组件提供者使用标准的部署描述符来"
+"指定所需的 ENC 条目。这些条目是组件在运行时所需的信息和资源的声明。"
#. Tag: para
#: Naming.xml:808
-#, no-c-format
-#, fuzzy
+#, fuzzy, no-c-format
msgid ""
"The container provides tools that allow a deployer of a component to map the "
"ENC references made by the component developer to the deployment environment "
@@ -3429,8 +3438,9 @@
"specification is available at <ulink url=\"http://java.sun.com/j2ee/download."
"html\"></ulink>."
msgstr ""
-"关于 J2EE 平台里对 JNDI 的使用可以在 J2EE 1.4 规格的第 5 部分找到。请参考 <ulink url=\"http://java.sun.com/j2ee/download."
-"html\"></ulink> 里的 J2EE 规格。"
+"关于 J2EE 平台里对 JNDI 的使用可以在 J2EE 1.4 规格的第 5 部分找到。请参考 "
+"<ulink url=\"http://java.sun.com/j2ee/download.html\"></ulink> 里的 J2EE 规"
+"格。"
#. Tag: para
#: Naming.xml:826
@@ -3446,8 +3456,10 @@
"ENC_access_sample_code\"/> illustrates the prototypical lines of code a "
"component uses to access its ENC."
msgstr ""
-"应用程序组件实例使用 JNDI API 寻找 ENC。应用程序组件实例使用无参数的构造函数并依据 <literal>java:comp/env</literal> 查找命名环境来创建 <literal>javax.naming."
-"InitialContext</literal> 对象。应用程序组件的环境选项直接保存在 ENC 或其子上下文里。<xref linkend="
+"应用程序组件实例使用 JNDI API 寻找 ENC。应用程序组件实例使用无参数的构造函数"
+"并依据 <literal>java:comp/env</literal> 查找命名环境来创建 <literal>javax."
+"naming.InitialContext</literal> 对象。应用程序组件的环境选项直接保存在 ENC 或"
+"其子上下文里。<xref linkend="
"\"J2EE_and_JNDI___The_Application_Component_Environment-"
"ENC_access_sample_code\"/> 演示了组件用来访问其 ENC 的原型代码。"
@@ -3494,8 +3506,17 @@
"<literal>Web1</literal> may bind the same name to the deployment environment "
"language locale representation of red."
msgstr ""
-"应用程序组件环境是一个本地环境,它只能在应用服务器控制线程和应用程序组件交互时被组件访问。这意味着 EJB <literal>Bean1</literal> 不能够访问 EJB <literal>Bean2</literal> 的 ENC 元素,反之亦然。类似地,Web 应用程序 <literal>Web1</literal> 不能访问 Web 应用程序 <literal>Web2</literal> 或 <literal>Bean1</literal> 或 <literal>Bean2</"
-"literal> 的 ENC 元素。而且,任何客户端代码,不管它是在应用服务器 VM 内部或外部执行,都不能访问组件的 <literal>java:comp</literal> JNDI 上下文。ENC 的目的是提供一种独立的、只读的命名空间,它可以被应用程序组件使用而不用考虑其部署环境的类型。例如,EJB <literal>Bean1</literal> 可以定义 <literal>java:comp/env/red</literal> 来引用 RGB 红色的十六进制值,而 Web 应用程序 <literal>Web1</literal> 可以把相同的名字绑定到代表红色的部署环境语言代码。"
+"应用程序组件环境是一个本地环境,它只能在应用服务器控制线程和应用程序组件交互"
+"时被组件访问。这意味着 EJB <literal>Bean1</literal> 不能够访问 EJB "
+"<literal>Bean2</literal> 的 ENC 元素,反之亦然。类似地,Web 应用程序 "
+"<literal>Web1</literal> 不能访问 Web 应用程序 <literal>Web2</literal> 或 "
+"<literal>Bean1</literal> 或 <literal>Bean2</literal> 的 ENC 元素。而且,任何"
+"客户端代码,不管它是在应用服务器 VM 内部或外部执行,都不能访问组件的 "
+"<literal>java:comp</literal> JNDI 上下文。ENC 的目的是提供一种独立的、只读的"
+"命名空间,它可以被应用程序组件使用而不用考虑其部署环境的类型。例如,EJB "
+"<literal>Bean1</literal> 可以定义 <literal>java:comp/env/red</literal> 来引"
+"用 RGB 红色的十六进制值,而 Web 应用程序 <literal>Web1</literal> 可以把相同的"
+"名字绑定到代表红色的部署环境语言代码。"
#. Tag: para
#: Naming.xml:834
@@ -3511,7 +3532,14 @@
"available to remote clients, provided the context or object supports "
"serialization. You'll see how the isolation of these naming scopes is "
"achieved in the <xref linkend=\"Naming_on_JBoss-The_JBossNS_Architecture\"/>."
-msgstr "在 JBoss 里有 3 个常用的命名作用域级别:<literal>java:comp</literal>、<literal>java:</literal> 及其他。如我们所讨论的,<literal>java:comp</literal> 上下文和其子上下文仅对于和特定上下文相关联的应用程序组件可用。<literal>java:</literal> 的子上下文和直接对象绑定仅在 JBoss 服务器虚拟机里可见,它对于远程客户是不可见的。只要支持串行化,任何其他上下文或者对象绑定都可以为远程客户可用。你将在 <xref linkend=\"Naming_on_JBoss-The_JBossNS_Architecture\"/> 里看到怎样实现这些命名作用域的分离的。"
+msgstr ""
+"在 JBoss 里有 3 个常用的命名作用域级别:<literal>java:comp</literal>、"
+"<literal>java:</literal> 及其他。如我们所讨论的,<literal>java:comp</"
+"literal> 上下文和其子上下文仅对于和特定上下文相关联的应用程序组件可用。"
+"<literal>java:</literal> 的子上下文和直接对象绑定仅在 JBoss 服务器虚拟机里可"
+"见,它对于远程客户是不可见的。只要支持串行化,任何其他上下文或者对象绑定都可"
+"以为远程客户可用。你将在 <xref linkend=\"Naming_on_JBoss-"
+"The_JBossNS_Architecture\"/> 里看到怎样实现这些命名作用域的分离的。"
#. Tag: para
#: Naming.xml:837
@@ -3524,9 +3552,9 @@
"interface would be bound to a globally visible name that should accessible "
"by remote client."
msgstr ""
-"对 <literal>java:</"
-"literal> 上下文绑定限制的一个例子是 <literal>javax.sql.DataSource</"
-"literal> 连接工厂,它只能在相关数据库池所在的 JBoss 服务器内部使用。另一方面,EJB home 接口将绑定到一个全局可见的名字,它可以被远程客户访问。"
+"对 <literal>java:</literal> 上下文绑定限制的一个例子是 <literal>javax.sql."
+"DataSource</literal> 连接工厂,它只能在相关数据库池所在的 JBoss 服务器内部使"
+"用。另一方面,EJB home 接口将绑定到一个全局可见的名字,它可以被远程客户访问。"
#. Tag: title
#: Naming.xml:841
@@ -3546,13 +3574,16 @@
"different types of information may be stored in and retrieved from JNDI "
"including:"
msgstr ""
-"JNDI 被用作 API 来具体化应用程序组件里的大量信息。应用程序组件用来访问这些信息的 JNDI 名字在 EJB 组件的标准 <literal>ejb-jar.xml</"
-"literal> 部署描述符或者 Web 组件的标准 <literal>web.xml</literal> 部署描述符里进行声明。可以存放在 JNDI 并从中读取的信息包括:"
+"JNDI 被用作 API 来具体化应用程序组件里的大量信息。应用程序组件用来访问这些信"
+"息的 JNDI 名字在 EJB 组件的标准 <literal>ejb-jar.xml</literal> 部署描述符或"
+"者 Web 组件的标准 <literal>web.xml</literal> 部署描述符里进行声明。可以存放"
+"在 JNDI 并从中读取的信息包括:"
#. Tag: para
#: Naming.xml:847
#, no-c-format
-msgid "Environment entries as declared by the <literal>env-entry</literal> elements"
+msgid ""
+"Environment entries as declared by the <literal>env-entry</literal> elements"
msgstr "<literal>env-entry</literal> 元素声明的环境条目"
#. Tag: para
@@ -3562,8 +3593,8 @@
"EJB references as declared by <literal>ejb-ref</literal> and <literal>ejb-"
"local-ref</literal> elements."
msgstr ""
-"<literal>ejb-ref</literal> 和 <literal>ejb-"
-"local-ref</literal> 元素声明的 EJB 引用。"
+"<literal>ejb-ref</literal> 和 <literal>ejb-local-ref</literal> 元素声明的 "
+"EJB 引用。"
#. Tag: para
#: Naming.xml:857
@@ -3591,12 +3622,15 @@
"JBoss server specific deployment descriptor element that maps the JNDI name "
"as used by the application component to the deployment environment JNDI name."
msgstr ""
+"部署描述符元素的每个类型都有一个信息所绑定的关于 JNDI 上下文名称的 JNDI 用"
+"法。而且,除了标准的部署描述符元素,应用程序组件也使用一个 JBoss 服务器特有的"
+"部署描述符元素把 JNDI 名映射到部署环境 JNDI 名上。"
#. Tag: title
#: Naming.xml:871
#, no-c-format
msgid "Environment Entries"
-msgstr ""
+msgstr "环境选项"
#. Tag: para
#: Naming.xml:872
@@ -3608,6 +3642,9 @@
"binding that allows a component to externalize a value and refer to the "
"value using a name."
msgstr ""
+"环境选项是存放在组件 ENC 里的信息的最简单的形式,它和 Unix 或 Windows 里的系"
+"统环境变量类似。环境选项是名称/值的绑定,它允许组件把值具体化并用一个名称对其"
+"进行引用。"
#. Tag: para
#: Naming.xml:875
@@ -3617,56 +3654,61 @@
"element in the standard deployment descriptors. The <literal>env-entry</"
"literal> element contains the following child elements:"
msgstr ""
+"在标准部署描述符里,环境选项使用 <literal>env-entry</literal> 元素进行声明。"
+"<literal>env-entry</literal> 元素包含系列的子元素:"
#. Tag: para
#: Naming.xml:880
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"An optional <emphasis role=\"bold\">description</emphasis> element that "
"provides a description of the entry"
-msgstr "<emphasis role=\"bold\">description</emphasis>:参数的可选描述。"
+msgstr ""
+"可选的 <emphasis role=\"bold\">description</emphasis> 元素提供该选项的描述。"
#. Tag: para
#: Naming.xml:885
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"An <emphasis role=\"bold\">env-entry-name</emphasis> element giving the name "
"of the entry relative to <literal>java:comp/env</literal>"
msgstr ""
-"<emphasis role=\"bold\">PartitionName</emphasis> 指定了部署这个 farm 的群集的"
-"名字。它的缺省值是 <literal>DefaultPartition</literal>。"
+"<emphasis role=\"bold\">env-entry-name</emphasis> 元素指定和 <literal>java:"
+"comp/env</literal> 相关的选项的名字。"
#. Tag: para
#: Naming.xml:890
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"An <emphasis role=\"bold\">env-entry-type</emphasis> element giving the Java "
"type of the entry value that must be one of:"
-msgstr "<emphasis role=\"bold\">Never</emphasis>:属性值永远都不要持久化"
+msgstr ""
+"<emphasis role=\"bold\">env-entry-type</emphasis> 元素指定下列 Java 类型的选"
+"项值之一:"
#. Tag: literal
#: Naming.xml:894
#, no-c-format
msgid "java.lang.Byte"
-msgstr ""
+msgstr "java.lang.Byte"
#. Tag: literal
#: Naming.xml:899
#, no-c-format
msgid "java.lang.Boolean"
-msgstr ""
+msgstr "java.lang.Boolean"
#. Tag: literal
#: Naming.xml:904
#, no-c-format
msgid "java.lang.Character"
-msgstr ""
+msgstr "java.lang.Character"
#. Tag: literal
#: Naming.xml:909
-#, fuzzy, no-c-format
+#, no-c-format
msgid "java.lang.Double"
-msgstr "from java.lang.Object o"
+msgstr "java.lang.Double"
#. Tag: literal
#: Naming.xml:914
@@ -3678,33 +3720,35 @@
#: Naming.xml:919
#, no-c-format
msgid "java.lang.Integer"
-msgstr ""
+msgstr "java.lang.Integer"
#. Tag: literal
#: Naming.xml:924
#, no-c-format
msgid "java.lang.Long"
-msgstr ""
+msgstr "java.lang.Long"
#. Tag: literal
#: Naming.xml:929
#, no-c-format
msgid "java.lang.Short"
-msgstr ""
+msgstr "java.lang.Short"
#. Tag: literal
#: Naming.xml:934
#, no-c-format
msgid "java.lang.String"
-msgstr ""
+msgstr "java.lang.String"
#. Tag: para
#: Naming.xml:941
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"An <emphasis role=\"bold\">env-entry-value</emphasis> element giving the "
"value of entry as a string"
-msgstr "<emphasis role=\"bold\">name</emphasis>:这个元素包含操作的名字。"
+msgstr ""
+"<emphasis role=\"bold\">env-entry-value</emphasis> 元素给出代表选项值的字符"
+"串。"
#. Tag: para
#: Naming.xml:946
@@ -3720,12 +3764,19 @@
"<literal>taxRate</literal><literal>env-entry</literal> values declared in "
"the deployment descriptor."
msgstr ""
+"<xref linkend=\"Environment_Entries-An_example_ejb_jar.xml_env_entry_fragment"
+"\"/> 里提供了 <literal>ejb-jar.xml</literal> 部署描述符里的 <literal>env-"
+"entry</literal> 代码片段。这里没有 JBoss 特有的部署描述符元素,因为 "
+"<literal>env-entry</literal> 是完整的关于名称和值的规格。<xref linkend="
+"\"Environment_Entries-ENC_env_entry_access_code_fragment\"/> 显示了一段访问部"
+"署描述符里声明的 <literal>maxExemptions</literal> 和 <literal>taxRate</"
+"literal><literal>env-entry</literal> 值的代码片段。"
#. Tag: title
#: Naming.xml:949
#, no-c-format
msgid "An example ejb-jar.xml env-entry fragment"
-msgstr ""
+msgstr "关于 ejb-jar.xml 里 env-entry 的代码示例"
#. Tag: programlisting
#: Naming.xml:950
@@ -3751,12 +3802,31 @@
"</session>\n"
"<!-- ... -->"
msgstr ""
+"<!-- ... -->\n"
+"<session>\n"
+" <ejb-name>ASessionBean</ejb-name>\n"
+" <!-- ... -->\n"
+" <env-entry>\n"
+" <description>The maximum number of tax exemptions allowed </"
+"description>\n"
+" <env-entry-name>maxExemptions</env-entry-name>\n"
+" <env-entry-type>java.lang.Integer</env-entry-type>\n"
+" <env-entry-value>15</env-entry-value>\n"
+" </env-entry>\n"
+" <env-entry>\n"
+" <description>The tax rate </description>\n"
+" <env-entry-name>taxRate</env-entry-name>\n"
+" <env-entry-type>java.lang.Float</env-entry-type>\n"
+" <env-entry-value>0.23</env-entry-value>\n"
+" </env-entry>\n"
+"</session>\n"
+"<!-- ... -->"
#. Tag: title
#: Naming.xml:951
#, no-c-format
msgid "ENC env-entry access code fragment"
-msgstr ""
+msgstr "访问 ENC env-entry 的代码片段"
#. Tag: programlisting
#: Naming.xml:952
@@ -3767,12 +3837,16 @@
"Integer maxExemptions = (Integer) envCtx.lookup(\"maxExemptions\");\n"
"Float taxRate = (Float) envCtx.lookup(\"taxRate\");"
msgstr ""
+"InitialContext iniCtx = new InitialContext();\n"
+"Context envCtx = (Context) iniCtx.lookup(\"java:comp/env\");\n"
+"Integer maxExemptions = (Integer) envCtx.lookup(\"maxExemptions\");\n"
+"Float taxRate = (Float) envCtx.lookup(\"taxRate\");"
#. Tag: title
#: Naming.xml:957
#, no-c-format
msgid "EJB References"
-msgstr ""
+msgstr "EJB 引用"
#. Tag: para
#: Naming.xml:958
@@ -3784,6 +3858,9 @@
"to declare a reference to an EJB that will be linked by the deployer. EJB "
"references satisfy this requirement."
msgstr ""
+"EJB 和 Web 组件和其他 EJB 交互是很常见的。因为 EJB home 接口绑定哪个 JNDI 名"
+"称是部署时才决定的,组件开发者需要声明对部署者将链接的 EJB 的引用。EJB 引用满"
+"足了这种需求。"
#. Tag: para
#: Naming.xml:961
@@ -3797,6 +3874,10 @@
"organized in the <literal>java:comp/env/ejb</literal> context of the "
"application component's environment."
msgstr ""
+"EJB 引用是对应用程序组件命名环境的链接,它提供指向部署的 EJB home 接口。被应"
+"用程序组件使用的名字是独立于部署环境里的 EJB home 的实际名称的逻辑链接。J2EE "
+"规格推荐所有对 enterprise bean 的引用都存放在应用程序组件环境里的 "
+"<literal>java:comp/env/ejb</literal> 上下文里。"
#. Tag: para
#: Naming.xml:964
@@ -3808,14 +3889,19 @@
"for the referenced enterprise bean. The <literal>ejb-ref</literal> element "
"contains the following child elements:"
msgstr ""
+"EJB 引用在部署描述符里用 <literal>ejb-ref</literal> 元素进行描述。每个 "
+"<literal>ejb-ref</literal> 元素都描述了应用程序组件对被引用的 enterprise "
+"bean 的接口要求。<literal>ejb-ref</literal> 元素包含了下列的子元素:"
#. Tag: para
#: Naming.xml:969 Naming.xml:1062 Naming.xml:1112 Naming.xml:1217
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"An optional <emphasis role=\"bold\">description</emphasis> element that "
"provides the purpose of the reference."
-msgstr "<emphasis role=\"bold\">description</emphasis>:参数的可选描述。"
+msgstr ""
+"可选的 <emphasis role=\"bold\">description</emphasis> 元素提供对引用的目的的"
+"描述。"
#. Tag: para
#: Naming.xml:974 Naming.xml:1067
@@ -3827,34 +3913,40 @@
"ejb</literal> context, use an <literal>ejb/link-name</literal> form for the "
"<literal>ejb-ref-name</literal> value."
msgstr ""
+"<emphasis role=\"bold\">ejb-ref-name</emphasis> 元素可以指定相对于 "
+"<literal>java:comp/env</literal> 上下文的引用的名称。要使用相对于 "
+"<literal>java:comp/env/ejb</literal> 上下文的引用,你可以采用值为 "
+"<literal>ejb-ref-name</literal> 的 <literal>ejb/link-name</literal> 形式。"
#. Tag: para
#: Naming.xml:979 Naming.xml:1072
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"An <emphasis role=\"bold\">ejb-ref-type</emphasis> element that specifies "
"the type of the EJB. This must be either <literal>Entity</literal> or "
"<literal>Session</literal>."
msgstr ""
-"<emphasis role=\"bold\">CacheMode</emphasis> 指定怎么在节点间使缓存同步。可能"
-"的值是 <literal>LOCAL</literal>,<literal>REPL_SYNC</literal> 或 "
-"<literal>REPL_ASYNC</literal>。"
+"<emphasis role=\"bold\">ejb-ref-type</emphasis> 元素指定 EJB 的类型。它的值必"
+"须为 <literal>Entity</literal> 或 <literal>Session</literal>。"
#. Tag: para
#: Naming.xml:984
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"A <emphasis role=\"bold\">home</emphasis> element that gives the fully "
"qualified class name of the EJB home interface."
-msgstr "<emphasis role=\"bold\">name</emphasis>:这个元素包含通知类的类全名。"
+msgstr ""
+"<emphasis role=\"bold\">home</emphasis> 元素给出 EJB home 接口的全限定类名。"
#. Tag: para
#: Naming.xml:989
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"A <emphasis role=\"bold\">remote</emphasis> element that gives the fully "
"qualified class name of the EJB remote interface."
-msgstr "<emphasis role=\"bold\">name</emphasis>:这个元素包含通知类的类全名。"
+msgstr ""
+"<emphasis role=\"bold\">remote</emphasis> 元素给出 EJB remote 接口的全限定类"
+"名。"
#. Tag: para
#: Naming.xml:994
@@ -3872,6 +3964,14 @@
"name separated by <literal>#</literal>. This allows multiple beans with the "
"same name to be uniquely identified."
msgstr ""
+"可选的 <emphasis role=\"bold\">ejb-link</emphasis> 元素链接对相同 EJB JAR 里"
+"或 J2EE 应用程序单元里的另外一个 enterprise bean 的引用。<literal>ejb-link</"
+"literal> 值为被引用 bean 的 <literal>ejb-name</literal>。如果多个 enterprise "
+"bean 具有相同的 <literal>ejb-name</literal> 属性,你可以使用其所在的 "
+"<literal>ejb-jar</literal> 文件的路径来指定。这个路径相对于 <literal>ejb-"
+"jar</literal> 文件。Application Assembler 把被引用的 bean 的 <literal>ejb-"
+"name</literal> 附加到用 <literal>#</literal> 隔开的路径名上。这就可以唯一识别"
+"具有相同名称的多个 bean。"
#. Tag: para
#: Naming.xml:999
@@ -3890,12 +3990,22 @@
"\"EJB_References-An_example_ejb_jar.xml_ejb_ref_descriptor_fragment\"/> is "
"given in <xref linkend=\"EJB_References-ENC_ejb_ref_access_code_fragment\"/>."
msgstr ""
+"EJB 引用可以在包含对 <literal>ejb-ref</literal> 元素的声明的应用程序组件里使"
+"用。这意味着在运行事 EJB 引用不能从其他应用程序里进行访问,且其他应用程序组件"
+"可以用相同的 <literal>ejb-ref-name</literal> 来定义 <literal>ejb-ref</"
+"literal> 元素而不会导致名字冲突。<xref linkend=\"EJB_References-"
+"An_example_ejb_jar.xml_ejb_ref_descriptor_fragment\"/> 提供了一段 "
+"<literal>ejb-jar.xml</literal> 代码来演示对 <literal>ejb-ref</literal> 元素的"
+"使用。<xref linkend=\"EJB_References-ENC_ejb_ref_access_code_fragment\"/> 里"
+"给出了访问 <xref linkend=\"EJB_References-An_example_ejb_jar."
+"xml_ejb_ref_descriptor_fragment\"/> 里声明的 <literal>ShoppingCartHome</"
+"literal> 引用的代码示例。"
#. Tag: title
#: Naming.xml:1002
#, no-c-format
msgid "An example ejb-jar.xml ejb-ref descriptor fragment"
-msgstr ""
+msgstr "在 ejb-jar.xml 里使用 ejb-ref 描述符的代码示例"
#. Tag: programlisting
#: Naming.xml:1003
@@ -3941,12 +4051,51 @@
"\n"
"<!--...-->"
msgstr ""
+"<!-- ... -->\n"
+"<session>\n"
+" <ejb-name>ShoppingCartBean</ejb-name>\n"
+" <!-- ...-->\n"
+"</session>\n"
+"\n"
+"<session>\n"
+" <ejb-name>ProductBeanUser</ejb-name>\n"
+" <!--...-->\n"
+" <ejb-ref>\n"
+" <description>This is a reference to the store products entity "
+"</description>\n"
+" <ejb-ref-name>ejb/ProductHome</ejb-ref-name>\n"
+" <ejb-ref-type>Entity</ejb-ref-type>\n"
+" <home>org.jboss.store.ejb.ProductHome</home>\n"
+" <remote> org.jboss.store.ejb.Product</remote>\n"
+" </ejb-ref>\n"
+"\n"
+"</session>\n"
+"\n"
+"<session>\n"
+" <ejb-ref>\n"
+" <ejb-name>ShoppingCartUser</ejb-name>\n"
+" <!--...-->\n"
+" <ejb-ref-name>ejb/ShoppingCartHome</ejb-ref-name>\n"
+" <ejb-ref-type>Session</ejb-ref-type>\n"
+" <home>org.jboss.store.ejb.ShoppingCartHome</home>\n"
+" <remote> org.jboss.store.ejb.ShoppingCart</remote>\n"
+" <ejb-link>ShoppingCartBean</ejb-link>\n"
+" </ejb-ref>\n"
+"</session>\n"
+"\n"
+"<entity>\n"
+" <description>The Product entity bean </description>\n"
+" <ejb-name>ProductBean</ejb-name>\n"
+" <!--...-->\n"
+"</entity>\n"
+"\n"
+"<!--...-->"
#. Tag: title
#: Naming.xml:1004
#, no-c-format
msgid "ENC ejb-ref access code fragment"
-msgstr ""
+msgstr "访问 ENC ejb-ref 的代码片段"
#. Tag: programlisting
#: Naming.xml:1005
@@ -3957,14 +4106,20 @@
"ShoppingCartHome home = (ShoppingCartHome) ejbCtx.lookup(\"ShoppingCartHome"
"\");"
msgstr ""
+"InitialContext iniCtx = new InitialContext();\n"
+"Context ejbCtx = (Context) iniCtx.lookup(\"java:comp/env/ejb\");\n"
+"ShoppingCartHome home = (ShoppingCartHome) ejbCtx.lookup(\"ShoppingCartHome"
+"\");"
#. Tag: title
#: Naming.xml:1010
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"EJB References with <literal>jboss.xml</literal> and <literal>jboss-web.xml</"
"literal>"
-msgstr "<literal>coalesce()</literal> 和 <literal>nullif()</literal>"
+msgstr ""
+"<literal>jboss.xml</literal> 和 <literal>jboss-web.xml</literal> 里的 EJB 引"
+"用"
#. Tag: para
#: Naming.xml:1011
@@ -3984,6 +4139,16 @@
"<literal>ShoppingCartBean</literal> in the absence of a <literal>jboss.xml</"
"literal><literal>jndi-name</literal> specification."
msgstr ""
+"JBoss 特有的 <literal>jboss.xml</literal> EJB 部署描述符用两种方式影响 EJB 引"
+"用。第一种方式是,<literal>session</literal> 和 <literal>entity</literal> 的 "
+"<literal>jndi-name</literal> 子元素允许用户为 EJB home 接口定部署 JNDI 名称。"
+"在 EJB 没有 <literal>jboss.xml</literal> 的 <literal>jndi-name</literal> 定义"
+"时,home 接口将以 <literal>ejb-jar.xml</literal> 的 <literal>ejb-name</"
+"literal> 所指定的值进行绑定。例如,在没有指定 <literal>jboss.xml</literal> 里"
+"的 <literal>jndi-name</literal> 的情况下,<xref linkend=\"EJB_References-"
+"An_example_ejb_jar.xml_ejb_ref_descriptor_fragment\"/> 里 <literal>ejb-name</"
+"literal> 为 <literal>ShoppingCartBean</literal> 的 session EJB 将其 home 接口"
+"绑定到 JNDI 名称 <literal>ShoppingCartBean</literal>。"
#. Tag: para
#: Naming.xml:1014
@@ -3997,6 +4162,12 @@
"EJB, you can specify the JNDI name of the deployed EJB home using the "
"<literal>jboss.xml</literal><literal>ejb-ref/jndi-name</literal> element."
msgstr ""
+"关于 <literal>ejb-ref</literal> 的 <literal>jboss.xml</literal> 描述符的第二"
+"种使用方式是设置组件的 ENC <literal>ejb-ref</literal> 的引用对象。"
+"<literal>ejb-link</literal> 元素不能够用来引用其他应用程序里的 EJB。如果你的 "
+"<literal>ejb-ref</literal> 需要访问一个外部的 EJB,你可以用<literal>jboss."
+"xml</literal> 的 <literal>ejb-ref/jndi-name</literal> 元素指定已部署的 EJB "
+"home 的 JNDI 名称。"
#. Tag: para
#: Naming.xml:1017
@@ -4007,6 +4178,9 @@
"refers. The content model for the JBoss <literal>ejb-ref</literal> is as "
"follows:"
msgstr ""
+"<literal>jboss-web.xml</literal> 描述符仅用来设置 Web 应用程序 ENC "
+"<literal>ejb-ref</literal> 的引用对象。JBoss <literal>ejb-ref</literal> 的内"
+"容模型如下:"
#. Tag: para
#: Naming.xml:1022
@@ -4017,47 +4191,53 @@
"<emphasis role=\"bold\">ejb-jar.xml</emphasis> or <emphasis role=\"bold"
"\">web.xml</emphasis> standard descriptor"
msgstr ""
+"<emphasis role=\"bold\">ejb-ref-name</emphasis> 元素对应 <emphasis role="
+"\"bold\">ejb-jar.xml</emphasis> 或 <emphasis role=\"bold\">web.xml</"
+"emphasis> 标准描述符里的 <emphasis role=\"bold\">ejb-ref-name</emphasis> 元素"
#. Tag: para
#: Naming.xml:1027
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"A <literal>jndi-name</literal> element that specifies the JNDI name of the "
"EJB home interface in the deployment environment"
msgstr ""
-"<literal>class</literal>元素指定管理接口由XMBean描述符描述的被管理的对象的类"
-"全名。"
+"<literal>jndi-name</literal> 元素指定部署环境里的 EJB home 接口的 JNDI 名称"
#. Tag: para
#: Naming.xml:1032
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"provides an example <literal>jboss.xml</literal> descriptor fragment that "
"illustrates the following usage points:"
-msgstr "下面说明了 <literal>conf</literal> 目录下的文件。"
+msgstr "提供演示下列用途的 <literal>jboss.xml</literal> 描述符示例片段:"
#. Tag: para
#: Naming.xml:1037
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"The <literal>ProductBeanUser</literal><literal>ejb-ref</literal> link "
"destination is set to the deployment name of <literal>jboss/store/"
"ProductHome</literal>"
-msgstr "在 <literal>Order</literal> 中,<literal>OrderLine</literal> 的集合则是这样:"
+msgstr ""
+"<literal>ProductBeanUser</literal><literal>ejb-ref</literal> 链接被设置为 "
+"<literal>jboss/store/ProductHome</literal> 的部署名称"
#. Tag: para
#: Naming.xml:1042
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"The deployment JNDI name of the <literal>ProductBean</literal> is set to "
"<literal>jboss/store/ProductHome</literal>"
-msgstr "在 <literal>Order</literal> 中,<literal>OrderLine</literal> 的集合则是这样:"
+msgstr ""
+"<literal>ProductBean</literal> 的部署 JNDI 名称被设置为 <literal>jboss/store/"
+"ProductHome</literal>"
#. Tag: title
#: Naming.xml:1047
#, no-c-format
msgid "An example jboss.xml ejb-ref fragment"
-msgstr ""
+msgstr "jboss.xml 里的 ejb-ref 示例片段"
#. Tag: programlisting
#: Naming.xml:1048
@@ -4081,12 +4261,29 @@
"</entity>\n"
"<!-- ... -->"
msgstr ""
+"<!-- ... -->\n"
+"<session>\n"
+" <ejb-name>ProductBeanUser</ejb-name>\n"
+" <ejb-ref>\n"
+" <ejb-ref-name>ejb/ProductHome</ejb-ref-name>\n"
+" <jndi-name><emphasis role=\"bold\">jboss/store/ProductHome</"
+"emphasis></jndi-name>\n"
+" </ejb-ref>\n"
+"</session>\n"
+" \n"
+"<entity>\n"
+" <ejb-name>ProductBean</ejb-name>\n"
+" <jndi-name><emphasis role=\"bold\">jboss/store/ProductHome</"
+"emphasis></jndi-name>\n"
+" <!-- ... -->\n"
+"</entity>\n"
+"<!-- ... -->"
#. Tag: title
#: Naming.xml:1053
#, no-c-format
msgid "EJB Local References"
-msgstr ""
+msgstr "EJB Local 引用"
#. Tag: para
#: Naming.xml:1054
@@ -4117,19 +4314,23 @@
#. Tag: para
#: Naming.xml:1077
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"A <emphasis role=\"bold\">local-home</emphasis> element that gives the fully "
"qualified class name of the EJB local home interface."
-msgstr "<emphasis role=\"bold\">name</emphasis>:这个元素包含通知类的类全名。"
+msgstr ""
+"<emphasis role=\"bold\">local-home</emphasis> 元素指定 EJB local home 接口的"
+"全限定类名。"
#. Tag: para
#: Naming.xml:1082
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"A <emphasis role=\"bold\">local</emphasis> element that gives the fully "
"qualified class name of the EJB local interface."
-msgstr "<emphasis role=\"bold\">name</emphasis>:这个元素包含通知类的类全名。"
+msgstr ""
+"<emphasis role=\"bold\">local</emphasis> 元素指定了 EJB local 接口的全限定类"
+"名。"
#. Tag: para
#: Naming.xml:1087
@@ -4174,7 +4375,7 @@
#: Naming.xml:1095
#, no-c-format
msgid "An example ejb-jar.xml ejb-local-ref descriptor fragment"
-msgstr ""
+msgstr "ejb-jar.xml 里的 ejb-local-ref 示例片段"
#. Tag: programlisting
#: Naming.xml:1096
@@ -4225,29 +4426,74 @@
" </session>\n"
" <!-- ... -->"
msgstr ""
+"<!-- ... -->\n"
+" <session>\n"
+" <ejb-name>Probe</ejb-name>\n"
+" <home>org.jboss.test.perf.interfaces.ProbeHome</home>\n"
+" <remote>org.jboss.test.perf.interfaces.Probe</remote>\n"
+" <local-home>org.jboss.test.perf.interfaces.ProbeLocalHome</"
+"local-home>\n"
+" <local>org.jboss.test.perf.interfaces.ProbeLocal</"
+"local>\n"
+" <ejb-class>org.jboss.test.perf.ejb.ProbeBean</ejb-"
+"class>\n"
+" <session-type>Stateless</session-type>\n"
+" <transaction-type>Bean</transaction-type>\n"
+" </session>\n"
+" <session>\n"
+" <ejb-name>PerfTestSession</ejb-name>\n"
+" <home>org.jboss.test.perf.interfaces.PerfTestSessionHome</"
+"home>\n"
+" <remote>org.jboss.test.perf.interfaces.PerfTestSession</"
+"remote>\n"
+" <ejb-class>org.jboss.test.perf.ejb.PerfTestSessionBean</ejb-"
+"class>\n"
+" <session-type>Stateless</session-type>\n"
+" <transaction-type>Container</transaction-type>\n"
+" <ejb-ref>\n"
+" <ejb-ref-name>ejb/ProbeHome</ejb-ref-name>\n"
+" <ejb-ref-type>Session</ejb-ref-type>\n"
+" <home>org.jboss.test.perf.interfaces.SessionHome</"
+"home>\n"
+" <remote>org.jboss.test.perf.interfaces.Session</"
+"remote>\n"
+" <ejb-link>Probe</ejb-link>\n"
+" </ejb-ref>\n"
+" <ejb-local-ref>\n"
+" <ejb-ref-name>ejb/ProbeLocalHome</ejb-ref-name>\n"
+" <ejb-ref-type>Session</ejb-ref-type>\n"
+" <local-home>org.jboss.test.perf.interfaces."
+"ProbeLocalHome</local-home>\n"
+" <local>org.jboss.test.perf.interfaces.ProbeLocal</"
+"local>\n"
+" <ejb-link>Probe</ejb-link>\n"
+" </ejb-local-ref>\n"
+" </session>\n"
+" <!-- ... -->"
#. Tag: title
#: Naming.xml:1097
#, no-c-format
msgid "ENC ejb-local-ref access code fragment"
-msgstr ""
+msgstr "访问 ENC ejb-local-ref 的代码片段"
#. Tag: programlisting
#: Naming.xml:1098
-#, fuzzy, no-c-format
+#, no-c-format
msgid ""
"InitialContext iniCtx = new InitialContext();\n"
"Context ejbCtx = (Context) iniCtx.lookup(\"java:comp/env/ejb\");\n"
"ProbeLocalHome home = (ProbeLocalHome) ejbCtx.lookup(\"ProbeLocalHome\");"
msgstr ""
"InitialContext iniCtx = new InitialContext();\n"
-"LdapContext ldapCtx = iniCtx.lookup(\"external/ldap/jboss\");"
+"Context ejbCtx = (Context) iniCtx.lookup(\"java:comp/env/ejb\");\n"
+"ProbeLocalHome home = (ProbeLocalHome) ejbCtx.lookup(\"ProbeLocalHome\");"
#. Tag: title
#: Naming.xml:1103
#, no-c-format
msgid "Resource Manager Connection Factory References"
-msgstr ""
+msgstr "资源管理者连接工厂引用"
#. Tag: para
#: Naming.xml:1104
@@ -4263,6 +4509,12 @@
"environment using the <literal>jboss.xml</literal> and <literal>jboss-web."
"xml</literal> descriptors."
msgstr ""
+"资源管理者连接工厂引用(Resource manager connection factory reference)允许应"
+"用程序组件的代码用逻辑名称(称为资源管理者连接工厂引用)来引用资源工厂。资源"
+"管理者连接工厂引用在标准部署描述符里用 <literal>resource-ref</literal> 元素进"
+"行定义。<literal>部署者</literal>用 <literal>jboss.xml</literal> 和 "
+"<literal>jboss-web.xml</literal> 描述符把资源管理者连接工厂引用绑定到存在于目"
+"标操作环境里的实际资源管理者连接工厂上。"
#. Tag: para
#: Naming.xml:1107
@@ -4272,6 +4524,8 @@
"manager connection factory reference. The <literal>resource-ref</literal> "
"element consists of the following child elements:"
msgstr ""
+"每个 <literal>resource-ref</literal> 元素都描述了单一的资源管理者连接工厂引"
+"用。<literal>resource-ref</literal> 元素由下列的子元素组成:"
#. Tag: para
#: Naming.xml:1117
@@ -4704,4 +4958,3 @@
" <!-- ... -->\n"
"</session>"
msgstr ""
-
Modified: projects/docs/trunk/Server_Configuration_Guide/zh-CN/Server_Configuration_Guide.po
===================================================================
--- projects/docs/trunk/Server_Configuration_Guide/zh-CN/Server_Configuration_Guide.po 2007-12-03 01:16:23 UTC (rev 67754)
+++ projects/docs/trunk/Server_Configuration_Guide/zh-CN/Server_Configuration_Guide.po 2007-12-03 01:16:56 UTC (rev 67755)
@@ -1,17 +1,23 @@
#. Tag: title
-#: Server_Configuration_Guide.xml:12
+#: Server_Configuration_Guide.xml:13
#, no-c-format
msgid "Java EE 5 Application Configuration"
msgstr ""
#. Tag: title
-#: Server_Configuration_Guide.xml:18
+#: Server_Configuration_Guide.xml:19
#, no-c-format
msgid "JBoss AS Infrastructure"
msgstr ""
#. Tag: title
-#: Server_Configuration_Guide.xml:38
+#: Server_Configuration_Guide.xml:31
#, no-c-format
msgid "Legacy EJB Support"
msgstr ""
+
+#. Tag: title
+#: Server_Configuration_Guide.xml:37
+#, no-c-format
+msgid "Clustering Guide"
+msgstr ""
Modified: projects/docs/trunk/Server_Configuration_Guide/zh-CN/Web_Services.po
===================================================================
--- projects/docs/trunk/Server_Configuration_Guide/zh-CN/Web_Services.po 2007-12-03 01:16:23 UTC (rev 67754)
+++ projects/docs/trunk/Server_Configuration_Guide/zh-CN/Web_Services.po 2007-12-03 01:16:56 UTC (rev 67755)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: JBEAP 420\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2007-11-05 06:04+0000\n"
+"POT-Creation-Date: 2007-12-03 00:52+0000\n"
"PO-Revision-Date: 2001-02-09 01:25+0100\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -20,141 +20,2284 @@
msgid "Web Services"
msgstr "代理服务"
+#. Tag: title
+#: Web_Services.xml:8
+#, no-c-format
+msgid "Document/Literal"
+msgstr ""
+
#. Tag: para
-#: Web_Services.xml:7
+#: Web_Services.xml:9
#, no-c-format
msgid ""
-"The biggest new feature of J2EE 1.4 is the ability of J2EE components to act "
-"both as web service providers and consumers. J2EE applications can expose a "
-"web service from the EJB tier using a stateless session bean or from the web "
-"tier using a plain Java object. Additionally,J2EE components have a standard "
-"way of declaring references to external web services."
+"With document style web services two business partners agree on the exchange "
+"of complex business documents that are well defined in XML schema. For "
+"example, one party sends a document describing a purchase order, the other "
+"responds (immediately or later) with a document that describes the status of "
+"the purchase order. No need to agree on such low level details as operation "
+"names and their associated parameters. The payload of the SOAP message is an "
+"XML document that can be validated against XML schema. Document is defined "
+"by the style attribute on the SOAP binding."
msgstr ""
+#. Tag: programlisting
+#: Web_Services.xml:15
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"<binding name='EndpointInterfaceBinding' type='tns:EndpointInterface'>\n"
+" <soap:binding style='document' transport='http://schemas.xmlsoap.org/"
+"soap/http'/>\n"
+" <operation name='concat'>\n"
+" <soap:operation soapAction=''/>\n"
+" <input>\n"
+" <soap:body use='literal'/>\n"
+" </input>\n"
+" <output>\n"
+" <soap:body use='literal'/>\n"
+" </output>\n"
+" </operation>\n"
+" </binding>]]>"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:18
+#, no-c-format
+msgid ""
+"With document style web services the payload of every message is defined by "
+"a complex type in XML schema."
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:21
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"<complexType name='concatType'>\n"
+" <sequence>\n"
+" <element name='String_1' nillable='true' type='string'/>\n"
+" <element name='long_1' type='long'/>\n"
+" </sequence>\n"
+" </complexType>\n"
+" <element name='concat' type='tns:concatType'/>\n"
+" Therefore, message parts must refer to an element from the schema. \n"
+" <message name='EndpointInterface_concat'>\n"
+" <part name='parameters' element='tns:concat'/>\n"
+" </message>\n"
+"The following message definition is invalid. \n"
+"<message name='EndpointInterface_concat'>\n"
+" <part name='parameters' type='tns:concatType'/>\n"
+"</message>\n"
+" ]]>"
+msgstr ""
+
#. Tag: title
-#: Web_Services.xml:11
+#: Web_Services.xml:27
#, no-c-format
-msgid "JAX-RPC Service Endpoints"
+msgid "Document/Literal (Bare)"
msgstr ""
#. Tag: para
-#: Web_Services.xml:12
+#: Web_Services.xml:28
#, no-c-format
msgid ""
-"JAX-RPC service endpoints (JSEs) provide web services from the web tier. "
-"They take the form of a simple Java objects that masquerade as servlets. To "
-"show how simple they are, we'll jump right in with a trivial hello web "
-"service implementation class."
+"Bare is an implementation detail from the Java domain. Neither in the "
+"abstract contract (i.e. wsdl+schema) nor at the SOAP message level is a bare "
+"endpoint recognizable. A bare endpoint or client uses a Java bean that "
+"represents the entire document payload."
msgstr ""
#. Tag: programlisting
-#: Web_Services.xml:15
+#: Web_Services.xml:31
#, no-c-format
msgid ""
-"package org.jboss.ws.hello;\n"
-"\n"
-"public class HelloPojo\n"
+"<![CDATA[\n"
+"@WebService\n"
+"@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)\n"
+"public class DocBareServiceImpl\n"
"{\n"
-" public String hello(String name)\n"
+"@WebMethod\n"
+"public SubmitBareResponse submitPO(SubmitBareRequest poRequest)\n"
+"{\n"
+" ...\n"
+"}\n"
+"}\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:34
+#, no-c-format
+msgid ""
+"The trick is that the Java beans representing the payload contain JAXB "
+"annotations that define how the payload is represented on the wire."
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:36
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+" @XmlAccessorType(XmlAccessType.FIELD)\n"
+" @XmlType(name = \"SubmitBareRequest\", namespace=\"http://"
+"soapbinding.samples.jaxws.ws.test.jboss.org/\", propOrder = { \"product"
+"\" })\n"
+" @XmlRootElement(namespace=\"http://soapbinding.samples.jaxws.ws.test."
+"jboss.org/\", name = \"SubmitPO\")\n"
+" public class SubmitBareRequest\n"
+" {\n"
+" @XmlElement(namespace=\"http://soapbinding.samples.jaxws.ws.test."
+"jboss.org/\", required = true)\n"
+" private String product;\n"
+" \n"
+" ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:40
+#, no-c-format
+msgid "Document/Literal (Wrapped)"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:41
+#, no-c-format
+msgid ""
+"Wrapped is an implementation detail from the Java domain. Neither in the "
+"abstract contract (i.e. wsdl+schema) nor at the SOAP message level is a "
+"wrapped endpoint recognizable. A wrapped endpoint or client uses the "
+"individual document payload properties. Wrapped is the default and does not "
+"have to be declared explicitly. <programlisting>\n"
+"<![CDATA[\n"
+"@WebService\n"
+"public class DocWrappedServiceImpl\n"
+" {\n"
+" @WebMethod\n"
+" @RequestWrapper (className=\"org.somepackage.SubmitPO\")\n"
+" @ResponseWrapper (className=\"org.somepackage.SubmitPOResponse\")\n"
+" public String submitPO(String product, int quantity)\n"
+" {\n"
+" ...\n"
+" }\n"
+" }]]></programlisting> Note, that with JBossWS the request/response "
+"wrapper annotations are not required, they will be generated on demand using "
+"sensible defaults."
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:51
+#, no-c-format
+msgid "RPC/Literal"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:52
+#, no-c-format
+msgid ""
+"With RPC there is a wrapper element that names the endpoint operation. Child "
+"elements of the RPC parent are the individual parameters. The SOAP body is "
+"constructed based on some simple rules: <itemizedlist> <listitem> <para> The "
+"port type operation name defines the endpoint method name </para> </"
+"listitem> <listitem> <para> Message parts are endpoint method parameters </"
+"para> </listitem> </itemizedlist> RPC is defined by the style attribute on "
+"the SOAP binding."
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:69
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+" <binding name='EndpointInterfaceBinding' type='tns:EndpointInterface'>\n"
+" <soap:binding style='rpc' transport='http://schemas.xmlsoap.org/"
+"soap/http'/>\n"
+" <operation name='echo'>\n"
+" <soap:operation soapAction=''/>\n"
+" <input>\n"
+" <soap:body namespace='http://org.jboss.ws/samples/"
+"jsr181pojo' use='literal'/>\n"
+" </input>\n"
+" <output>\n"
+" <soap:body namespace='http://org.jboss.ws/samples/"
+"jsr181pojo' use='literal'/>\n"
+" </output>\n"
+" </operation>\n"
+" </binding>]]>"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:72
+#, no-c-format
+msgid ""
+"With rpc style web services the portType names the operation (i.e. the java "
+"method on the endpoint) <programlisting>\n"
+"<![CDATA[ <portType name='EndpointInterface'>\n"
+" <operation name='echo' parameterOrder='String_1'>\n"
+" <input message='tns:EndpointInterface_echo'/>\n"
+" <output message='tns:"
+"EndpointInterface_echoResponse'/>\n"
+" </operation>\n"
+" </portType> ]]></programlisting> Operation parameters are defined by "
+"individual message parts. <programlisting><![CDATA[\n"
+" <message name='EndpointInterface_echo'>\n"
+" <part name='String_1' type='xsd:string'/>\n"
+" </message>\n"
+" <message name='EndpointInterface_echoResponse'>\n"
+" <part name='result' type='xsd:string'/>\n"
+" </message>]]></programlisting> Note, there is no complex type in XML schema "
+"that could validate the entire SOAP message payload. <programlisting>\n"
+"<![CDATA[\n"
+" @WebService\n"
+" @SOAPBinding(style = SOAPBinding.Style.RPC)\n"
+" public class JSEBean01\n"
+" {\n"
+" @WebMethod\n"
+" @WebResult(name=\"result\")\n"
+" public String echo(@WebParam(name=\"String_1\") String input)\n"
+" {\n"
+" ...\n"
+" }\n"
+"} ]]></programlisting> The element names of RPC parameters/return values may "
+"be defined using the JAX-WS Annotations#javax.jws.WebParam and JAX-WS "
+"Annotations#javax.jws.WebResult respectively."
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:89
+#, no-c-format
+msgid "RPC/Encoded"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:90
+#, no-c-format
+msgid ""
+"SOAP encodeding style is defined by the infamous <ulink url=\"http://www.w3."
+"org/TR/2000/NOTE-SOAP-20000508/#_Toc478383512\">chapter 5</ulink> of the "
+"<ulink url=\"http://www.w3.org/TR/2000/NOTE-SOAP-20000508/\">SOAP-1.1</"
+"ulink> specification. It has inherent interoperability issues that cannot be "
+"fixed. The <ulink url=\"http://www.ws-i.org/Profiles/BasicProfile-1.0-2004-"
+"04-16.html\">Basic Profile-1.0</ulink> prohibits this encoding style in "
+"<ulink url=\"http://www.ws-i.org/Profiles/BasicProfile-1.0-2004-04-16."
+"html#refinement16448072\">4.1.7 SOAP encodingStyle Attribute</ulink>. "
+"JBossWS has basic support for rpc/encoded that is provided as is for simple "
+"interop scenarios with SOAP stacks that do not support literal encoding. "
+"Specifically, JBossWS does not support:-"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:97
+#, fuzzy, no-c-format
+msgid "element references"
+msgstr "服务架构"
+
+#. Tag: para
+#: Web_Services.xml:102
+#, no-c-format
+msgid "soap arrays as bean properties"
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:112
+#, fuzzy, no-c-format
+msgid "Web Service Endpoints"
+msgstr "代理服务"
+
+#. Tag: para
+#: Web_Services.xml:113
+#, no-c-format
+msgid ""
+"JAX-WS simplifies the development model for a web service endpoint a great "
+"deal. In short, an endpoint implementation bean is annotated with JAX-WS "
+"annotations and deployed to the server. The server automatically generates "
+"and publishes the abstract contract (i.e. wsdl+schema) for client "
+"consumption. All marshalling/unmarshalling is delegated to JAXB [2]."
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:120
+#, no-c-format
+msgid "Plain old Java Object (POJO)"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:121
+#, no-c-format
+msgid ""
+"Let's take a look at simple POJO endpoint implementation. All endpoint "
+"associated metadata is provided via JSR-181 annotations"
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:122
+#, no-c-format
+msgid ""
+"<![CDATA[@WebService\n"
+"@SOAPBinding(style = SOAPBinding.Style.RPC)\n"
+"public class JSEBean01\n"
+" {\n"
+" @WebMethod\n"
+" public String echo(String input)\n"
" {\n"
-" return \"Hello \" + name + \"!\";\n"
+" ...\n"
" }\n"
-"}"
+" } ]]>"
msgstr ""
+#. Tag: title
+#: Web_Services.xml:128
+#, no-c-format
+msgid "The endpoint as a web application"
+msgstr ""
+
#. Tag: para
-#: Web_Services.xml:16
+#: Web_Services.xml:129
#, no-c-format
+msgid "A JAX-WS java service endpoint (JSE) is deployed as a web application."
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:132
+#, no-c-format
msgid ""
-"There is nothing remarkable about <literal>HelloPojo</literal>. It doesn'"
-"t implement any special interfaces nor does it need any methods besides the "
-"business methods it decides to provide. The <literal>hello</literal> method "
-"is the operation that we will expose as a web service, and it does nothing "
-"but respond with a friendly greeting to the person passed in."
+"<![CDATA[\n"
+"<web-app ...>\n"
+" <servlet>\n"
+" <servlet-name>TestService</servlet-name>\n"
+" <servlet-class>org.jboss.test.ws.jaxws.samples.jsr181pojo."
+"JSEBean01</servlet-class>\n"
+" </servlet>\n"
+" <servlet-mapping>\n"
+" <servlet-name>TestService</servlet-name>\n"
+" <url-pattern>/*</url-pattern>\n"
+" </servlet-mapping>\n"
+"</web-app> ]]>"
msgstr ""
+#. Tag: title
+#: Web_Services.xml:138
+#, no-c-format
+msgid "<title>Packaging the endpoint</title>"
+msgstr ""
+
#. Tag: para
-#: Web_Services.xml:19
+#: Web_Services.xml:139
#, no-c-format
msgid ""
-"That is our web service implementation. In addition to this, we need a "
-"service endpoint interface (SEI) that defines the interface of the web "
-"service. That is shown here as the <literal>Hello</literal> interface."
+"A JSR-181 java service endpoint (JSE) is packaged as a web application in a "
+"*.war file. <programlisting>\n"
+"<![CDATA[\n"
+" <war warfile=\"${build.dir}/libs/jbossws-samples-jsr181pojo.war\" webxml="
+"\"${build.resources.dir}/samples/jsr181pojo/WEB-INF/web.xml\">\n"
+" <classes dir=\"${build.dir}/classes\">\n"
+" <include name=\"org/jboss/test/ws/samples/jsr181pojo/JSEBean01.class\"/>\n"
+" </classes>\n"
+"</war> ]]></programlisting> Note, only the endpoint implementation bean and "
+"web.xml are required."
msgstr ""
+#. Tag: title
+#: Web_Services.xml:155
+#, no-c-format
+msgid "<title>Accessing the generated WSDL</title>"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:156 Web_Services.xml:176
+#, no-c-format
+msgid ""
+"A successfully deployed service endpoint will show up in the service "
+"endpoint manager. This is also where you find the links to the generated "
+"wsdl."
+msgstr ""
+
#. Tag: programlisting
-#: Web_Services.xml:22
+#: Web_Services.xml:158
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"http://yourhost:8080/jbossws/services\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:158 Web_Services.xml:178
+#, no-c-format
+msgid ""
+"Note, it is also possible to generate the abstract contract off line using "
+"jbossw tools. For details of that please see <ulink url=\"http://jbws.dyndns."
+"org/mediawiki/index.php?title=JAX-WS_User_Guide#Top_Down_.28Java_to_WSDL.29"
+"\">#Top Down (Java to WSDL)</ulink>"
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:163
+#, no-c-format
+msgid "EJB3 Stateless Session Bean (SLSB)"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:164
+#, no-c-format
+msgid ""
+"The JAX-WS programming model support the same set of annotations on EJB3 "
+"stateless session beans as on <ulink url=\"http://jbws.dyndns.org/mediawiki/"
+"index.php?title=JAX-WS_User_Guide#_Plain_old_Java_Object_.28POJO.29\"># "
+"Plain old Java Object (POJO)</ulink> endpoints. EJB-2.1 endpoints are "
+"supported using the JAX-RPC progamming model."
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:165
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+" @Stateless\n"
+" @Remote(EJB3RemoteInterface.class)\n"
+" @RemoteBinding(jndiBinding = "/ejb3/EJB3EndpointInterface")\n"
+" \n"
+" @WebService\n"
+" @SOAPBinding(style = SOAPBinding.Style.RPC)\n"
+" public class EJB3Bean01 implements EJB3RemoteInterface\n"
+" {\n"
+" @WebMethod\n"
+" public String echo(String input)\n"
+" {\n"
+" ...\n"
+" }\n"
+" }]]>"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:167
+#, no-c-format
+msgid ""
+"Above you see an EJB-3.0 stateless session bean that exposes one method both "
+"on the remote interface and on and as an endpoint operation."
+msgstr ""
+
+#. Tag: emphasis
+#: Web_Services.xml:169
+#, no-c-format
+msgid "<emphasis>Packaging the endpoint</emphasis>"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:171
+#, no-c-format
+msgid ""
+"A JSR-181 EJB service endpoint is packaged as an ordinary ejb deployment."
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:172
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"<jar jarfile="${build.dir}/libs/jbossws-samples-jsr181ejb.jar""
+">\n"
+"<fileset dir="${build.dir}/classes">\n"
+"<include name="org/jboss/test/ws/samples/jsr181ejb/EJB3Bean01."
+"class"/>\n"
+"<include name="org/jboss/test/ws/samples/jsr181ejb/"
+"EJB3RemoteInterface.class"/>\n"
+"</fileset>\n"
+"</jar>]]>"
+msgstr ""
+
+#. Tag: emphasis
+#: Web_Services.xml:174
+#, no-c-format
+msgid "<emphasis>Accessing the generated WSDL</emphasis>"
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:177
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+" http://yourhost:8080/jbossws/services]]>"
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:181
+#, no-c-format
+msgid "Endpoint Provider"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:182
+#, no-c-format
+msgid ""
+"JAX-WS services typically implement a native Java service endpoint interface "
+"(SEI), perhaps mapped from a WSDL port type, either directly or via the use "
+"of annotations."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:183
+#, no-c-format
+msgid ""
+"Java SEIs provide a high level Java-centric abstraction that hides the "
+"details of converting between Java objects and their XML representations for "
+"use in XML-based messages. However, in some cases it is desirable for "
+"services to be able to operate at the XML message level. The Provider "
+"interface offers an alternative to SEIs and may be implemented by services "
+"wishing to work at the XML message level."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:184
+#, no-c-format
+msgid ""
+"A Provider based service instance’s invoke method is called for each message "
+"received for the service."
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:185
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"@WebServiceProvider\n"
+"@ServiceMode(value = Service.Mode.PAYLOAD)\n"
+"public class ProviderBeanPayload implements Provider<Source>\n"
+"{\n"
+"public Source invoke(Source req)\n"
+"{\n"
+"// Access the entire request PAYLOAD and return the response PAYLOAD\n"
+" }\n"
+"}]]>"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:186
+#, no-c-format
+msgid ""
+"Note, Service.Mode.PAYLOAD is the default and does not have to be declared "
+"explicitly. You can also use Service.Mode.MESSAGE to access the entire SOAP "
+"message (i.e. with MESSAGE the Provider can also see SOAP Headers)"
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:189
#, fuzzy, no-c-format
+msgid "WebServiceContext"
+msgstr "代理服务"
+
+#. Tag: para
+#: Web_Services.xml:190
+#, no-c-format
msgid ""
-"package org.jboss.ws.hello;\n"
-"\n"
-"import java.rmi.Remote;\n"
-"import java.rmi.RemoteException;\n"
-"\n"
-"public interface Hello\n"
-" extends Remote\n"
+"The WebServiceContext is treated as an injectable resource that can be set "
+"at the time an endpoint is initialized. The WebServiceContext object will "
+"then use thread-local information to return the correct information "
+"regardless of how many threads are concurrently being used to serve requests "
+"addressed to the same endpoint object."
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:191
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"@WebService\n"
+"public class EndpointJSE\n"
"{\n"
-" public String hello(String name)\n"
-" throws RemoteException;\n"
-"}"
+"@Resource\n"
+"WebServiceContext wsCtx;\n"
+" \n"
+"@WebMethod\n"
+"public String testGetMessageContext()\n"
+"{\n"
+"SOAPMessageContext jaxwsContext = (SOAPMessageContext)wsCtx.getMessageContext"
+"();\n"
+"return jaxwsContext != null ? "pass" : "fail";\n"
+"}\n"
+"..\n"
+"@WebMethod\n"
+"public String testGetUserPrincipal()\n"
+"{\n"
+"Principal principal = wsCtx.getUserPrincipal();\n"
+"return principal.getName();\n"
+"}\n"
+" \n"
+"@WebMethod\n"
+"public boolean testIsUserInRole(String role)\n"
+"{\n"
+"return wsCtx.isUserInRole(role);\n"
+"}\n"
+"}\n"
+"]]>"
msgstr ""
-"package org.jboss.chap2.ex2;\n"
-"\n"
-"// The JNDIMap MBean interface\n"
-"import javax.naming.NamingException;\n"
-"\n"
-"public interface JNDIMapMBean extends org.jboss.system.ServiceMBean\n"
+
+#. Tag: title
+#: Web_Services.xml:194
+#, fuzzy, no-c-format
+msgid "Web Service Clients"
+msgstr "代理服务"
+
+#. Tag: title
+#: Web_Services.xml:196
+#, fuzzy, no-c-format
+msgid "Service"
+msgstr "代理服务"
+
+#. Tag: para
+#: Web_Services.xml:197
+#, no-c-format
+msgid ""
+"<literal>Service</literal> is an abstraction that represents a WSDL service. "
+"A WSDL service is a collection of related ports, each of which consists of a "
+"port type bound to a particular protocol and available at a particular "
+"endpoint address."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:198
+#, no-c-format
+msgid ""
+"For most clients, you will start with a set of stubs generated from the "
+"WSDL. One of these will be the service, and you will create objects of that "
+"class in order to work with the service (see "static case" below)."
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:200
+#, fuzzy, no-c-format
+msgid "Service Usage"
+msgstr "代理服务"
+
+#. Tag: emphasis
+#: Web_Services.xml:202
+#, no-c-format
+msgid "Static case"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:204
+#, no-c-format
+msgid ""
+"Most clients will start with a WSDL file, and generate some stubs using "
+"jbossws tools like <emphasis>wsconsume</emphasis>. This usually gives a mass "
+"of files, one of which is the top of the tree. This is the service "
+"implementation class."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:205
+#, no-c-format
+msgid ""
+"The generated implementation class can be recognised as it will have two "
+"public constructors, one with no arguments and one with two arguments, "
+"representing the wsdl location (a java.net.URL) and the service name (a "
+"javax.xml.namespace.QName) respectively."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:206
+#, no-c-format
+msgid ""
+"Usually you will use the no-argument constructor. In this case the WSDL "
+"location and service name are those found in the WSDL. These are set "
+"implicitly from the WebServiceClient annotation that decorates the generated "
+"class."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:207
+#, no-c-format
+msgid ""
+"The following code snippet shows the generated constructors from the "
+"generated class:"
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:208
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"// Generated Service Class\n"
+" \n"
+" @WebServiceClient(name="StockQuoteService", targetNamespace=""
+"http://example.com/stocks", wsdlLocation="http://example.com/"
+"stocks.wsdl")\n"
+"public class StockQuoteService extends javax.xml.ws.Service \n"
"{\n"
-" public String getJndiName();\n"
-" public void setJndiName(String jndiName) throws NamingException;\n"
-"}"
+"public StockQuoteService() \n"
+"{\n"
+"super(new URL("http://example.com/stocks.wsdl"), new QName(""
+"http://example.com/stocks", "StockQuoteService"));\n"
+"}\n"
+" \n"
+"public StockQuoteService(String wsdlLocation, QName serviceName) \n"
+"{\n"
+"super(wsdlLocation, serviceName);\n"
+"}\n"
+" \n"
+"...\n"
+"}]]>"
+msgstr ""
#. Tag: para
-#: Web_Services.xml:23
+#: Web_Services.xml:209
#, no-c-format
msgid ""
-"The service endpoint interface is declared <literal>Remote</literal> and the "
-"methods must throw <literal>RemoteException</literal>. Beyond this, it is a "
-"simple expression of the interface to our web service. This is all the code "
-"we need to write to expose a J2EE web service. Deploying it, however, does "
-"require a few additional deployment descriptors."
+"Section <ulink url=\"http://jbws.dyndns.org/mediawiki/index.php?title=JAX-"
+"WS_User_Guide#Dynamic_Proxy\">#Dynamic Proxy</ulink> explains how to obtain "
+"a port from the service and how to invoke an operation on the port. If you "
+"need to work with the XML payload directly or with the XML representation of "
+"the entire SOAP message, have a look at <ulink url=\"http://jbws.dyndns.org/"
+"mediawiki/index.php?title=JAX-WS_User_Guide#Dispatch\">#Dispatch</ulink>."
msgstr ""
+#. Tag: emphasis
+#: Web_Services.xml:211
+#, no-c-format
+msgid "Dynamic case"
+msgstr ""
+
#. Tag: para
-#: Web_Services.xml:26
+#: Web_Services.xml:213
#, no-c-format
msgid ""
-"Although a JSE doesn't bears any direct resemblance to a servlet, it is "
-"nonetheless deployed as a servlet in the <literal>web.xml</literal> file. "
-"We'll need to declare the web service implementation class as a servlet "
-"and provide a servlet mapping that will respond to the web service "
-"invocations. Here is the definition required to deploy the hello web service."
+"In the dynamic case, when nothing is generated, a web service client uses "
+"<literal>Service.create</literal> to create Service instances, the following "
+"code illustrates this process."
msgstr ""
#. Tag: programlisting
-#: Web_Services.xml:29
+#: Web_Services.xml:214
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"URL wsdlLocation = new URL("http://example.org/my.wsdl");\n"
+"QName serviceName = new QName("http://example.org/sample", ""
+"MyService");\n"
+"Service service = Service.create(wsdlLocation, serviceName);]]>"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:216
+#, no-c-format
+msgid ""
+"This is the nastiest way to work with JBossWs. Older versions have extensive "
+"details on DII as it was then known."
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:219
+#, no-c-format
+msgid "Handler Resolver"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:220
+#, no-c-format
+msgid ""
+"JAX-WS provides a flexible plug-in framework for message processing modules, "
+"known as handlers, that may be used to extend the capabilities of a JAX-WS "
+"runtime system. <ulink url=\"http://jbws.dyndns.org/mediawiki/index.php?"
+"title=JAX-WS_User_Guide#Handler_Framework\">#Handler Framework</ulink> "
+"describes the handler framework in detail. A Service instance provides "
+"access to a HandlerResolver via a pair of getHandlerResolver/"
+"setHandlerResolver methods that may be used to configure a set of handlers "
+"on a per-service, per-port or per-protocol binding basis."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:221
+#, no-c-format
+msgid ""
+"When a Service instance is used to create a proxy or a Dispatch instance "
+"then the handler resolver currently registered with the service is used to "
+"create the required handler chain. Subsequent changes to the handler "
+"resolver configured for a Service instance do not affect the handlers on "
+"previously created proxies, or Dispatch instances."
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:225
+#, no-c-format
+msgid "Executor"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:226
+#, no-c-format
+msgid ""
+"Service instances can be configured with a java.util.concurrent.Executor. "
+"The executor will then be used to invoke any asynchronous callbacks "
+"requested by the application. The setExecutor and getExecutor methods of "
+"Service can be used to modify and retrieve the executor configured for a "
+"service."
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:231
+#, no-c-format
+msgid "Dynamic Proxy"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:232
+#, no-c-format
+msgid ""
+"You can create an instance of a client proxy using one of getPort methods on "
+"the <ulink url=\"http://jbws.dyndns.org/mediawiki/index.php?title=JAX-"
+"WS_User_Guide#Service\">#Service</ulink>."
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:233
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+" /** \n"
+" * The getPort method returns a proxy. A service client\n"
+" * uses this proxy to invoke operations on the target\n"
+" * service endpoint. The <code>serviceEndpointInterface</code>\n"
+" * specifies the service endpoint interface that is supported by\n"
+" * the created dynamic proxy instance.\n"
+" **/\n"
+" public <T> T getPort(QName portName, Class<T> "
+"serviceEndpointInterface)\n"
+" {\n"
+" ...\n"
+" }\n"
+" \n"
+" /** \n"
+" * The getPort method returns a proxy. The parameter\n"
+" * <code>serviceEndpointInterface</code> specifies the service\n"
+" * endpoint interface that is supported by the returned proxy.\n"
+" * In the implementation of this method, the JAX-WS\n"
+" * runtime system takes the responsibility of selecting a protocol\n"
+" * binding (and a port) and configuring the proxy accordingly.\n"
+" * The returned proxy should not be reconfigured by the client.\n"
+" *\n"
+" **/\n"
+" public <T> T getPort(Class<T> serviceEndpointInterface)\n"
+" {\n"
+" ...\n"
+" }]]>"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:234
+#, no-c-format
+msgid ""
+"The service endpoint interface (SEI) is usually generated using tools. For "
+"details see <ulink url=\"http://jbws.dyndns.org/mediawiki/index.php?"
+"title=JAX-WS_User_Guide#_Top_Down_.28WSDL_to_Java.29\"># Top Down (WSDL to "
+"Java)</ulink>"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:235
+#, no-c-format
+msgid ""
+"A generated static <ulink url=\"http://jbws.dyndns.org/mediawiki/index.php?"
+"title=JAX-WS_User_Guide#Service\">#Service</ulink> usually also offers typed "
+"methods to get ports. These methods also return dynamic proxies that "
+"implement the SEI."
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:236
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"@WebServiceClient(name = "TestEndpointService", targetNamespace = "
+""http://org.jboss.ws/wsref", \n"
+" wsdlLocation = "http://localhost.localdomain:8080/jaxws-samples-"
+"webserviceref?wsdl")\n"
+" \n"
+" public class TestEndpointService extends Service\n"
+" {\n"
+" ...\n"
+" \n"
+" public TestEndpointService(URL wsdlLocation, QName serviceName) {\n"
+" super(wsdlLocation, serviceName);\n"
+" }\n"
+" \n"
+" @WebEndpoint(name = "TestEndpointPort")\n"
+" public TestEndpoint getTestEndpointPort() \n"
+" {\n"
+" return (TestEndpoint)super.getPort(TESTENDPOINTPORT, TestEndpoint."
+"class);\n"
+" }\n"
+" }\n"
+" ]]>"
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:239
#, fuzzy, no-c-format
+msgid "WebServiceRef"
+msgstr "代理服务"
+
+#. Tag: para
+#: Web_Services.xml:240
+#, no-c-format
msgid ""
-"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
-"<web-app xmlns=\"http://java.sun.com/xml/ns/\"Whats_new_in_JBoss_4-"
-"J2EE_Certification_and_Standards_Compliance\"\n"
-" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
-" xsi:schemaLocation=\"http://java.sun.com/xml/ns/j2ee \n"
-" http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
-"\"\n"
-" version=\"2.4\">\n"
-" <servlet>\n"
-" <servlet-name>HelloWorldWS</servlet-name>\n"
-" <servlet-class>org.jboss.ws.hello.HelloPojo</servlet-"
-"class>\n"
-" </servlet>\n"
-"\n"
-" <servlet-mapping>\n"
-" <servlet-name>HelloWorldWS</servlet-name>\n"
-" <url-pattern>/Hello</url-pattern>\n"
-" </servlet-mapping>\n"
-"</web-app>"
+"The WebServiceRef annotation is used to declare a reference to a Web "
+"service. It follows the resource pattern exemplified by the javax.annotation."
+"Resource annotation in JSR-250 [5]"
msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:241
+#, no-c-format
+msgid "There are two uses to the WebServiceRef annotation:"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:244
+#, no-c-format
+msgid ""
+"To define a reference whose type is a generated service class. In this case, "
+"the type and value element will both refer to the generated service class "
+"type. Moreover, if the reference type can be inferred by the field/method "
+"declaration the annotation is applied to, the type and value elements MAY "
+"have the default value (Object.class, that is). If the type cannot be "
+"inferred, then at least the type element MUST be present with a non-default "
+"value."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:247
+#, no-c-format
+msgid ""
+"To define a reference whose type is a SEI. In this case, the type element "
+"MAY be present with its default value if the type of the reference can be "
+"inferred from the annotated field/method declaration, but the value element "
+"MUST always be present and refer to a generated service class type (a "
+"subtype of javax.xml.ws.Service). The wsdlLocation element, if present, "
+"overrides theWSDL location information specified in the WebService "
+"annotation of the referenced generated service class."
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:250
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"public class EJB3Client implements EJB3Remote\n"
+"{\n"
+" @WebServiceRef\n"
+" public TestEndpointService service4;\n"
+" \n"
+" @WebServiceRef\n"
+" public TestEndpoint port3;\n"
+"]]>"
+msgstr ""
+
+#. Tag: emphasis
+#: Web_Services.xml:252
+#, no-c-format
+msgid "WebServiceRef Customization"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:254
+#, no-c-format
+msgid ""
+"In jboss-5.0.x we offer a number of overrides and extensions to the "
+"WebServiceRef annotation. These include"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:257
+#, no-c-format
+msgid "define the port that should be used to resolve a container-managed port"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:260
+#, no-c-format
+msgid "define default Stub property settings for Stub objects"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:263
+#, no-c-format
+msgid "define the URL of a final WSDL document to be used"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:266
+#, no-c-format
+msgid "Example:"
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:267
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"<service-ref>\n"
+"<service-ref-name>OrganizationService</service-ref-name>\n"
+"<wsdl-override>file:/wsdlRepository/organization-service.wsdl</wsdl-"
+"override>\n"
+"</service-ref>\n"
+".. \n"
+"<service-ref>\n"
+"<service-ref-name>OrganizationService</service-ref-name>\n"
+"<config-name>Secure Client Config</config-name>\n"
+"<config-file>META-INF/jbossws-client-config.xml</config-file>\n"
+"<handler-chain>META-INF/jbossws-client-handlers.xml</handler-"
+"chain>\n"
+"</service-ref>\n"
+" \n"
+"<service-ref>\n"
+"<service-ref-name>SecureService</service-ref-name>\n"
+"<service-class-name>org.jboss.tests.ws.jaxws.webserviceref."
+"SecureEndpointService</service-class-name>\n"
+"<service-qname>{http://org.jboss.ws/wsref}SecureEndpointService</"
+"service-qname>\n"
+"<port-info>\n"
+"<service-endpoint-interface>org.jboss.tests.ws.jaxws.webserviceref."
+"SecureEndpoint</service-endpoint-interface>\n"
+"<port-qname>{http://org.jboss.ws/wsref}SecureEndpointPort</port-"
+"qname>\n"
+"<stub-property>\n"
+"<name>javax.xml.ws.security.auth.username</name>\n"
+"<value>kermit</value>\n"
+"</stub-property>\n"
+"<stub-property>\n"
+"<name>javax.xml.ws.security.auth.password</name>\n"
+"<value>thefrog</value>\n"
+"</stub-property>\n"
+"</port-info>\n"
+"</service-ref>\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:268
+#, no-c-format
+msgid ""
+"For details please see <emphasis role=\"bold\">service-ref_5_0.dtd</"
+"emphasis> in the jboss docs directory."
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:271
+#, no-c-format
+msgid "Dispatch"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:272
+#, no-c-format
+msgid ""
+"XMLWeb Services use XML messages for communication between services and "
+"service clients. The higher level JAX-WS APIs are designed to hide the "
+"details of converting between Java method invocations and the corresponding "
+"XML messages, but in some cases operating at the XML message level is "
+"desirable. The Dispatch interface provides support for this mode of "
+"interaction."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:273
+#, no-c-format
+msgid ""
+"Dispatch supports two usage modes, identified by the constants javax.xml.ws."
+"Service.Mode.MESSAGE and javax.xml.ws.Service.Mode.PAYLOAD respectively:"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:274
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">Message</emphasis> In this mode, client applications "
+"work directly with protocol-specific message structures. E.g., when used "
+"with a SOAP protocol binding, a client application would work directly with "
+"a SOAP message."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:275
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">Message Payload</emphasis> In this mode, client "
+"applications work with the payload of messages rather than the messages "
+"themselves. E.g., when used with a SOAP protocol binding, a client "
+"application would work with the contents of the SOAP Body rather than the "
+"SOAP message as a whole."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:276
+#, no-c-format
+msgid ""
+"Dispatch is a low level API that requires clients to construct messages or "
+"message payloads as XML and requires an intimate knowledge of the desired "
+"message or payload structure. Dispatch is a generic class that supports "
+"input and output of messages or message payloads of any type."
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:277
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"Service service = Service.create(wsdlURL, serviceName);\n"
+"Dispatch dispatch = service.createDispatch(portName, StreamSource.class, "
+"Mode.PAYLOAD);\n"
+" \n"
+"String payload = "<ns1:ping xmlns:ns1='http://oneway.samples."
+"jaxws.ws.test.jboss.org/'/>";\n"
+"dispatch.invokeOneWay(new StreamSource(new StringReader(payload)));\n"
+" \n"
+"payload = "<ns1:feedback xmlns:ns1='http://oneway.samples.jaxws."
+"ws.test.jboss.org/'/>";\n"
+"Source retObj = (Source)dispatch.invoke(new StreamSource(new StringReader"
+"(payload)));\n"
+"]]>"
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:280
+#, no-c-format
+msgid "Asynchronous Invocations"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:281
+#, no-c-format
+msgid ""
+"The BindingProvider interface represents a component that provides a "
+"protocol binding for use by clients, it is implemented by proxies and is "
+"extended by the Dispatch interface."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:293
+#, no-c-format
+msgid ""
+"BindingProvider instances may provide asynchronous operation capabilities. "
+"When used, asynchronous operation invocations are decoupled from the "
+"BindingProvider instance at invocation time such that the response context "
+"is not updated when the operation completes. Instead a separate response "
+"context is made available using the Response interface."
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:294
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"public void testInvokeAsync() throws Exception\n"
+"{\n"
+"URL wsdlURL = new URL("http://" + getServerHost() + ":8080/"
+"jaxws-samples-asynchronous?wsdl");\n"
+"QName serviceName = new QName(targetNS, "TestEndpointService");\n"
+"Service service = Service.create(wsdlURL, serviceName);\n"
+"TestEndpoint port = service.getPort(TestEndpoint.class);\n"
+" \n"
+"Response response = port.echoAsync("Async");\n"
+" \n"
+"// access future\n"
+"String retStr = (String) response.get();\n"
+"assertEquals("Async", retStr);\n"
+"}\n"
+"]]>"
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:297
+#, no-c-format
+msgid "Oneway Invocations"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:298
+#, no-c-format
+msgid ""
+"@Oneway indicates that the given web method has only an input message and no "
+"output. Typically, a oneway method returns the thread of control to the "
+"calling application prior to executing the actual business method."
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:299
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"@WebService (name="PingEndpoint")\n"
+"@SOAPBinding(style = SOAPBinding.Style.RPC)\n"
+"public class PingEndpointImpl\n"
+"{\n"
+" private static String feedback;\n"
+".. \n"
+"@WebMethod\n"
+"@Oneway\n"
+"public void ping()\n"
+"{\n"
+"log.info("ping");\n"
+"feedback = "ok";\n"
+"}\n"
+".. \n"
+"@WebMethod\n"
+"public String feedback()\n"
+"{\n"
+"log.info("feedback");\n"
+"return feedback;\n"
+"}\n"
+"}\n"
+"]]>"
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:303
+#, no-c-format
+msgid "Common API"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:304
+#, no-c-format
+msgid ""
+"This sections describes concepts that apply equally to <ulink url=\"http://"
+"jbws.dyndns.org/mediawiki/index.php?title=JAX-"
+"WS_User_Guide#Web_Service_Endpoints\">#Web Service Endpoints</ulink> and "
+"<ulink url=\"http://jbws.dyndns.org/mediawiki/index.php?title=JAX-"
+"WS_User_Guide#Web_Service_Clients\">#Web Service Clients</ulink>"
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:306
+#, no-c-format
+msgid "Handler Framework"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:307
+#, no-c-format
+msgid ""
+"The handler framework is implemented by a JAX-WS protocol binding in both "
+"client and server side runtimes. Proxies, and Dispatch instances, known "
+"collectively as binding providers, each use protocol bindings to bind their "
+"abstract functionality to specific protocols."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:308
+#, no-c-format
+msgid ""
+"Client and server-side handlers are organized into an ordered list known as "
+"a handler chain. The handlers within a handler chain are invoked each time a "
+"message is sent or received. Inbound messages are processed by handlers "
+"prior to binding provider processing. Outbound messages are processed by "
+"handlers after any binding provider processing."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:309
+#, no-c-format
+msgid ""
+"Handlers are invoked with a message context that provides methods to access "
+"and modify inbound and outbound messages and to manage a set of properties. "
+"Message context properties may be used to facilitate communication between "
+"individual handlers and between handlers and client and service "
+"implementations. Different types of handlers are invoked with different "
+"types of message context."
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:322
+#, no-c-format
+msgid "Logical Handler"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:323
+#, no-c-format
+msgid ""
+"Handlers that only operate on message context properties and message "
+"payloads. Logical handlers are protocol agnostic and are unable to affect "
+"protocol specific parts of a message. Logical handlers are handlers that "
+"implement javax.xml.ws.handler.LogicalHandler."
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:326
+#, no-c-format
+msgid "Protocol Handler"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:327
+#, no-c-format
+msgid ""
+"Handlers that operate on message context properties and protocol specific "
+"messages. Protocol handlers are specific to a particular protocol and may "
+"access and change protocol specific aspects of a message. Protocol handlers "
+"are handlers that implement any interface derived from javax.xml.ws.handler."
+"Handler except javax.xml.ws.handler.LogicalHandler."
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:330
+#, no-c-format
+msgid "Service endpoint handlers"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:331
+#, no-c-format
+msgid ""
+"On the service endpoint, handlers are defined using the @HandlerChain "
+"annotation."
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:332
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"@WebService\n"
+"@HandlerChain(file = "jaxws-server-source-handlers.xml")\n"
+"public class SOAPEndpointSourceImpl\n"
+"{\n"
+"...\n"
+"}\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:333
+#, no-c-format
+msgid "The location of the handler chain file supports 2 formats"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:334
+#, no-c-format
+msgid ""
+"1. An absolute java.net.URL in externalForm. (ex: <ulink url=\"http://"
+"myhandlers.foo.com/handlerfile1.xml\">http://myhandlers.foo.com/handlerfile1."
+"xml</ulink>)"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:335
+#, no-c-format
+msgid ""
+"2. A relative path from the source file or class file. (ex: bar/handlerfile1."
+"xml)"
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:338
+#, no-c-format
+msgid "Service client handlers"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:339
+#, no-c-format
+msgid ""
+"On the client side, handler can be configured using the @HandlerChain "
+"annotation on the SEI or dynamically using the API."
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:340
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"Service service = Service.create(wsdlURL, serviceName);\n"
+"Endpoint port = (Endpoint)service.getPort(Endpoint.class);\n"
+" \n"
+"BindingProvider bindingProvider = (BindingProvider)port;\n"
+"List<Handler> handlerChain = new ArrayList<Handler>();\n"
+"handlerChain.add(new LogHandler());\n"
+"handlerChain.add(new AuthorizationHandler());\n"
+"handlerChain.add(new RoutingHandler());\n"
+"bindingProvider.getBinding().setHandlerChain(handlerChain); // important!\n"
+"]]>"
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:344
+#, no-c-format
+msgid "Message Context"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:345
+#, no-c-format
+msgid ""
+"MessageContext is the super interface for all JAX-WS message contexts. It "
+"extends Map<String,Object> with additional methods and constants to "
+"manage a set of properties that enable handlers in a handler chain to share "
+"processing related state. For example, a handler may use the put method to "
+"insert a property in the message context that one or more other handlers in "
+"the handler chain may subsequently obtain via the get method."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:346
+#, no-c-format
+msgid ""
+"Properties are scoped as either APPLICATION or HANDLER. All properties are "
+"available to all handlers for an instance of an MEP on a particular "
+"endpoint. E.g., if a logical handler puts a property in the message context, "
+"that property will also be available to any protocol handlers in the chain "
+"during the execution of an MEP instance. APPLICATION scoped properties are "
+"also made available to client applications (see section 4.2.1) and service "
+"endpoint implementations. The defaultscope for a property is HANDLER."
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:348
+#, no-c-format
+msgid "Accessing the message context"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:349
+#, no-c-format
+msgid ""
+"There is currently no portable way of doing this in 4.0.5. "
+"<literal>@WebServiceContext</literal> injection will be available with 4.2. "
+"In the meantime you can access the message context like this:"
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:350
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"CommonMessageContext msgContext = MessageContextAssociation."
+"peekMessageContext(); \n"
+"msgContext.setProperty(<Name>, <Value>);\n"
+"]]>"
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:353
+#, no-c-format
+msgid "Logical Message Context"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:354
+#, no-c-format
+msgid ""
+"<ulink url=\"#\">#Logical Handlers</ulink> are passed a message context of "
+"type LogicalMessageContext when invoked. LogicalMessageContext extends "
+"MessageContext with methods to obtain and modify the message payload, it "
+"does not provide access to the protocol specific aspects of amessage. A "
+"protocol binding defines what component of a message are available via a "
+"logical message context. The SOAP binding defines that a logical handler "
+"deployed in a SOAP binding can access the contents of the SOAP body but not "
+"the SOAP headers whereas the XML/HTTP binding defines that a logical handler "
+"can access the entire XML payload of a message."
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:357
+#, no-c-format
+msgid "SOAP Message Context"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:358
+#, no-c-format
+msgid ""
+"SOAP handlers are passed a SOAPMessageContext when invoked. "
+"SOAPMessageContext extends MessageContext with methods to obtain and modify "
+"the SOAP message payload."
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:362
+#, no-c-format
+msgid "Fault Handling"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:363
+#, no-c-format
+msgid "An implementation may thow a SOAPFaultException"
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:364
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"public void throwSoapFaultException()\n"
+"{\n"
+"SOAPFactory factory = SOAPFactory.newInstance();\n"
+"SOAPFault fault = factory.createFault("this is a fault string!", "
+"new QName("http://foo", "FooCode"));\n"
+"fault.setFaultActor("mr.actor");\n"
+"fault.addDetail().addChildElement("test");\n"
+"throw new SOAPFaultException(fault);\n"
+"}\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:365
+#, no-c-format
+msgid "or an application specific user exception"
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:366
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"public void throwApplicationException() throws UserException\n"
+"{\n"
+"throw new UserException("validation", 123, "Some validation "
+"error");\n"
+"}\n"
+"]]>"
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:368 Web_Services.xml:460 Web_Services.xml:484
+#: Web_Services.xml:600 Web_Services.xml:618 Web_Services.xml:719
+#: Web_Services.xml:843 Web_Services.xml:1011 Web_Services.xml:1087
+#: Web_Services.xml:1097
+#, no-c-format
+msgid "Note"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:369
+#, no-c-format
+msgid ""
+"In case of the latter JBossWS generates the required fault wrapper beans at "
+"runtime if they are not part of the deployment"
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:375
+#, no-c-format
+msgid "DataBinding"
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:377
+#, no-c-format
+msgid "Using JAXB with non annotated classes"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:378
+#, no-c-format
+msgid "Since 2.0.2"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:379
+#, no-c-format
+msgid ""
+"JAXB is heavily driven by Java Annotations on the Java Bindings. It "
+"currently doesn't support an external binding configuration. This "
+"recently became an issue for us on JBossESB since the JBossWS 2.0.0 native "
+"SOAP stack uses JAXB to perform the SOAP to Java bindings (see 1, 2). "
+"It's an issue for JBossESB simply because it needs to be able to "
+"support user definition of JBossWS native Webservice Endpoints (e.g. JSR "
+"181) using Java typesets that have not been "JAXB Annotated" (see "
+"JAXB Introductions On JBossWS)."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:380
+#, no-c-format
+msgid ""
+"In order to support this, we built on a JAXB RI feature whereby it allows "
+"you to specify a RuntimeInlineAnnotationReader implementation during "
+"JAXBContext creation (see JAXBRIContext)."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:381
+#, no-c-format
+msgid ""
+"We call this feature "JAXB Annotation Introduction" and we've "
+"made it available for general consumption i.e. it can be checked out, built "
+"and used from SVN:"
+msgstr ""
+
+#. Tag: ulink
+#: Web_Services.xml:385
+#, no-c-format
+msgid "http://anonsvn.jboss.org/repos/jbossws/projects/jaxbintros/"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:389
+#, no-c-format
+msgid "Complete documentation can be found here:"
+msgstr ""
+
+#. Tag: ulink
+#: Web_Services.xml:393
+#, no-c-format
+msgid "JAXB Introductions"
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:400
+#, no-c-format
+msgid "Attachments"
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:402
+#, no-c-format
+msgid "MTOM/XOP"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:403
+#, no-c-format
+msgid ""
+"This section describes Message Transmission Optimization Mechanism (MTOM) "
+"and XML-binary Optimized Packaging (XOP), a means of more efficiently "
+"serializing XML Infosets that have certain types of content. The related "
+"specifications are"
+msgstr ""
+
+#. Tag: ulink
+#: Web_Services.xml:407
+#, no-c-format
+msgid "SOAP Message Transmission Optimization Mechanism (MTOM)"
+msgstr ""
+
+#. Tag: ulink
+#: Web_Services.xml:412
+#, no-c-format
+msgid "XML-binary Optimized Packaging (XOP)"
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:417
+#, no-c-format
+msgid "Supported MTOM parameter types"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:425
+#, no-c-format
+msgid "image/jpeg"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:428
+#, no-c-format
+msgid "java.awt.Image"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:433
+#, no-c-format
+msgid "text/xml"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:436 Web_Services.xml:444
+#, no-c-format
+msgid "javax.xml.transform.Source"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:441
+#, no-c-format
+msgid "application/xml"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:449
+#, no-c-format
+msgid "application/octet-stream"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:452
+#, no-c-format
+msgid "javax.activation.DataHandler"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:458
+#, no-c-format
+msgid ""
+"The above table shows a list of supported endpoint parameter types. The "
+"recommended approach is to use the <ulink url=\"http://java.sun.com/j2ee/1.4/"
+"docs/api/javax/activation/DataHandler.html\">javax.activation.DataHandler</"
+"ulink> classes to represent binary data as service endpoint parameters."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:462
+#, no-c-format
+msgid ""
+"Microsoft endpoints tend to send any data as application/octet-stream. The "
+"only Java type that can easily cope with this ambiguity is javax.activation."
+"DataHandler"
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:467
+#, no-c-format
+msgid "Enabling MTOM per endpoint"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:468
+#, no-c-format
+msgid ""
+"On the server side MTOM processing is enabled through the "
+"<literal>@BindingType</literal> annotation. JBossWS does handle SOAP1.1 and "
+"SOAP1.2. Both come with or without MTOM flavours:"
+msgstr ""
+
+#. Tag: emphasis
+#: Web_Services.xml:470
+#, no-c-format
+msgid "MTOM enabled service implementations"
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:472
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"package org.jboss.test.ws.jaxws.samples.xop.doclit;\n"
+" \n"
+"import javax.ejb.Remote;\n"
+"import javax.jws.WebService;\n"
+"import javax.jws.soap.SOAPBinding;\n"
+"import javax.xml.ws.BindingType;\n"
+" \n"
+"@Remote\n"
+"@WebService(targetNamespace = "http://org.jboss.ws/xop/doclit")\n"
+"@SOAPBinding(style = SOAPBinding.Style.DOCUMENT, parameterStyle = "
+"SOAPBinding.ParameterStyle.BARE)\n"
+"@BindingType(value="http://schemas.xmlsoap.org/wsdl/soap/http?"
+"mtom=true") (1)\n"
+"public interface MTOMEndpoint {\n"
+" \n"
+"[...]\n"
+"}\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:475
+#, no-c-format
+msgid "The MTOM enabled SOAP 1.1 binding ID"
+msgstr ""
+
+#. Tag: emphasis
+#: Web_Services.xml:479
+#, no-c-format
+msgid "MTOM enabled clients"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:481
+#, no-c-format
+msgid ""
+"Web service clients can use the same approach described above or rely on the "
+"<literal>Binding</literal> API to enable MTOM (Excerpt taken from the "
+"<literal>org.jboss.test.ws.jaxws.samples.xop.doclit.XOPTestCase</literal>):"
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:482
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"[...]\n"
+"Service service = Service.create(wsdlURL, serviceName);\n"
+"port = service.getPort(MTOMEndpoint.class);\n"
+" \n"
+"// enable MTOM\n"
+"binding = (SOAPBinding)((BindingProvider)port).getBinding();\n"
+"binding.setMTOMEnabled(true);\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:486
+#, no-c-format
+msgid ""
+"You might as well use the JBossWS configuration templates to setup "
+"deployment defaults."
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:492
+#, no-c-format
+msgid "SwaRef"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:493
+#, no-c-format
+msgid "Since 2.0"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:494
+#, no-c-format
+msgid ""
+"<ulink url=\"http://www.ws-i.org/Profiles/AttachmentsProfile-1.0-2004-08-24."
+"html\">WS-I Attachment Profile 1.0</ulink> defines mechanism to reference "
+"MIME attachment parts using <ulink url=\"http://www.ws-i.org/Profiles/"
+"AttachmentsProfile-1.0-2004-08-24."
+"html#Referencing_Attachments_from_the_SOAP_Envelope\">swaRef</ulink>. In "
+"this mechanism the content of XML element of type wsi:swaRef is sent as MIME "
+"attachment and the element inside SOAP Body holds the reference to this "
+"attachment in the CID URI scheme as defined by <ulink url=\"http://www.ietf."
+"org/rfc/rfc2111.txt\">RFC 2111</ulink>."
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:496
+#, no-c-format
+msgid "Using SwaRef with JAX-WS endpoints"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:497
+#, no-c-format
+msgid ""
+"JAX-WS endpoints delegate all marshalling/unmarshalling to the JAXB API. The "
+"most simple way to enable SwaRef encoding for <literal>DataHandler</literal> "
+"types is to annotate a payload bean with the <literal>@XmlAttachmentRef</"
+"literal> annotation as shown below:"
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:498
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"/**\n"
+"* Payload bean that will use SwaRef encoding\n"
+"*/\n"
+"@XmlRootElement\n"
+"public class DocumentPayload\n"
+"{\n"
+"private DataHandler data;\n"
+" \n"
+"public DocumentPayload()\n"
+"{\n"
+"}\n"
+" \n"
+"public DocumentPayload(DataHandler data)\n"
+"{\n"
+"this.data = data;\n"
+"}\n"
+" \n"
+"@XmlElement\n"
+"@XmlAttachmentRef\n"
+"public DataHandler getData()\n"
+"{\n"
+"return data;\n"
+"}\n"
+" \n"
+"public void setData(DataHandler data)\n"
+"{\n"
+"this.data = data;\n"
+"}\n"
+"}\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:499
+#, no-c-format
+msgid ""
+"With document wrapped endpoints you may even specify the "
+"<literal>@XmlAttachmentRef</literal> annotation on the service endpoint "
+"interface:"
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:500
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"@WebService\n"
+"public interface DocWrappedEndpoint\n"
+"{\n"
+"@WebMethod\n"
+"DocumentPayload beanAnnotation(DocumentPayload dhw, String test);\n"
+" \n"
+"@WebMethod\n"
+"@XmlAttachmentRef\n"
+"DataHandler parameterAnnotation(@XmlAttachmentRef DataHandler data, String "
+"test);\n"
+" \n"
+"}\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:501
+#, no-c-format
+msgid "The message would then refer to the attachment part by CID:"
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:502
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/"
+"'>\n"
+"<env:Header/>\n"
+"<env:Body>\n"
+"<ns2:parameterAnnotation xmlns:ns2='http://swaref.samples.jaxws.ws."
+"test.jboss.org/'>\n"
+"<arg0>cid:0-1180017772935-32455963 at ws.jboss.org</arg0>\n"
+"<arg1>Wrapped test</arg1>\n"
+"</ns2:parameterAnnotation>\n"
+"</env:Body>\n"
+"</env:Envelope>\n"
+"]]>"
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:505
+#, no-c-format
+msgid "Starting from WSDL"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:506
+#, no-c-format
+msgid ""
+"If you chose the contract first approach then you need to ensure that any "
+"element declaration that should use SwaRef encoding simply refers to wsi:"
+"swaRef schema type:"
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:507
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"<element name="data" type="wsi:swaRef" \n"
+"xmlns:wsi="http://ws-i.org/profiles/basic/1.1/xsd"/>\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:508
+#, no-c-format
+msgid "Any wsi:swaRef schema type would then be mapped to DataHandler."
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:513
+#, no-c-format
+msgid "Tools"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:514
+#, no-c-format
+msgid ""
+"The JAX-WS tools provided by JBossWS can be used in a variety of ways. First "
+"we will look at server-side development strategies, and then proceed to the "
+"client. When developing a Web Service Endpoint (the server-side) you have "
+"the option of starting from Java (bottom-up development), or from the "
+"abstact contract (WSDL) that defines your service (top-down development). If "
+"this is a new service (no existing contract), the bottom-up approach is the "
+"fastest route; you only need to add a few annotations to your classes to get "
+"a service up and running. However, if you are developing a service with an "
+"already defined contract, it is far simpler to use the top-down approach, "
+"since the provided tool will generate the annotated code for you."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:515
+#, no-c-format
+msgid "Bottom-up use cases:"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:518
+#, no-c-format
+msgid "Exposing an already existing EJB3 bean as a Web Service"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:521
+#, no-c-format
+msgid ""
+"Providing a new service, and you want the contract to be generated for you"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:524
+#, no-c-format
+msgid "Top-down use cases:"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:527
+#, no-c-format
+msgid ""
+"Replacing the implementation of an existing Web Service, and you can't "
+"break compatibility with older clients"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:530
+#, no-c-format
+msgid ""
+"Exposing a service that conforms to a contract specified by a third party (e."
+"g. a vender that calls you back using an already defined protocol)."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:533
+#, no-c-format
+msgid ""
+"Creating a service that adheres to the XML Schema and WSDL you developed by "
+"hand up front"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:536
+#, no-c-format
+msgid "The following JAX-WS command line tools are included in JBossWS:"
+msgstr ""
+
+#. Tag: emphasis
+#: Web_Services.xml:545
+#, no-c-format
+msgid "Command"
+msgstr ""
+
+#. Tag: emphasis
+#: Web_Services.xml:550
+#, no-c-format
+msgid "Description"
+msgstr ""
+
+#. Tag: ulink
+#: Web_Services.xml:557
+#, no-c-format
+msgid "wsprovide"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:561
+#, no-c-format
+msgid ""
+"Generates JAX-WS portable artifacts, and provides the abstract contract. "
+"Used for bottom-up development."
+msgstr ""
+
+#. Tag: ulink
+#: Web_Services.xml:567
+#, no-c-format
+msgid "wsconsume"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:571
+#, no-c-format
+msgid ""
+"Consumes the abstract contract (WSDL and Schema files), and produces "
+"artifacts for both a server and client. Used for top-down and client "
+"development"
+msgstr ""
+
+#. Tag: ulink
+#: Web_Services.xml:577
+#, no-c-format
+msgid "wsrunclient"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:581
+#, no-c-format
+msgid "Executes a Java client (has a main method) using the JBossWS classpath."
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:588
+#, no-c-format
+msgid "Bottom-Up (Using wsprovide)"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:589
+#, no-c-format
+msgid ""
+"The bottom-up strategy involves developing the Java code for your service, "
+"and then annotating it using JAX-WS annotations. These annotations can be "
+"used to customize the contract that is generated for your service. For "
+"example, you can change the operation name to map to anything you like. "
+"However, all of the annotations have sensible defaults, so only the "
+"@WebService annotation is required."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:590
+#, no-c-format
+msgid "This can be as simple as creating a single class:"
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:591
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"package echo;\n"
+" \n"
+"@javax.jws.WebService\n"
+"public class Echo\n"
+"{\n"
+"public String echo(String input)\n"
+"{\n"
+"return input;\n"
+"}\n"
+"}\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:592
+#, no-c-format
+msgid ""
+"A JSE or EJB3 deployment can be built using this class, and it is the only "
+"Java code needed to deploy on JBossWS. The WSDL, and all other Java "
+"artifacts called "wrapper classes" will be generated for you at "
+"deploy time. This actually goes beyond the JAX-WS specification, which "
+"requires that wrapper classes be generated using an offline tool. The reason "
+"for this requirement is purely a vender implementation problem, and since we "
+"do not believe in burdening a developer with a bunch of additional steps, we "
+"generate these as well. However, if you want your deployment to be portable "
+"to other application servers, you will unfortunately need to use a tool and "
+"add the generated classes to your deployment."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:593
+#, no-c-format
+msgid ""
+"This is the primary purpose of the <ulink url=\"http://jbws.dyndns.org/"
+"mediawiki/index.php?title=Wsprovide\">wsprovide</ulink> tool, to generate "
+"portable JAX-WS artifacts. Additionally, it can be used to ""
+"provide" the abstract contract (WSDL file) for your service. This can "
+"be obtained by invoking <ulink url=\"http://jbws.dyndns.org/mediawiki/index."
+"php?title=Wsprovide\">wsprovide</ulink> using the "-w" option:"
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:594
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"$ javac -d . -classpath jboss-jaxws.jar Echo.java\n"
+"$ wsprovide -w echo.Echo\n"
+"Generating WSDL:\n"
+"EchoService.wsdl\n"
+"Writing Classes:\n"
+"echo/jaxws/Echo.class\n"
+"echo/jaxws/EchoResponse.class\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:595
+#, no-c-format
+msgid "Inspecting the WSDL reveals a service called EchoService:"
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:596 Web_Services.xml:709
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"<service name='EchoService'>\n"
+"<port binding='tns:EchoBinding' name='EchoPort'>\n"
+"<soap:address location='REPLACE_WITH_ACTUAL_URL'/>\n"
+"</port>\n"
+"</service>\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:597
+#, no-c-format
+msgid "As expected, this service defines one operation, "echo":"
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:598
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"<portType name='Echo'>\n"
+"<operation name='echo' parameterOrder='echo'>\n"
+"<input message='tns:Echo_echo'/>\n"
+"<output message='tns:Echo_echoResponse'/>\n"
+"</operation>\n"
+"</portType>\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:601
+#, no-c-format
+msgid ""
+"Remember that <emphasis role=\"bold\">when deploying on JBossWS you do not "
+"need to run this tool.</emphasis> You only need it for generating portable "
+"artifacts and/or the abstract contract for your service."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:605
+#, no-c-format
+msgid ""
+"Let's create a POJO endpoint for deployment on JBoss AS. A simple web."
+"xml needs to be created:"
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:606
+#, fuzzy, no-c-format
+msgid ""
+"<![CDATA[\n"
+"<web-app xmlns="http://java.sun.com/xml/ns/j2ee"\n"
+"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\n"
+"xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/"
+"xml/ns/j2ee/web-app_2_4.xsd"\n"
+"version="2.4">\n"
+" \n"
+"<servlet>\n"
+"<servlet-name>Echo</servlet-name>\n"
+"<servlet-class>echo.Echo</servlet-class>\n"
+"</servlet>\n"
+" \n"
+"<servlet-mapping>\n"
+"<servlet-name>Echo</servlet-name>\n"
+"<url-pattern>/Echo</url-pattern>\n"
+"</servlet-mapping>\n"
+"</web-app>\n"
+"]]>"
+msgstr ""
"<?xml version=\"1.0\"?> \n"
"<web-app xmlns=\"http://java.sun.com/xml/ns/j2ee\"\n"
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" \n"
@@ -167,1064 +2310,3121 @@
"</web-app>"
#. Tag: para
-#: Web_Services.xml:30
+#: Web_Services.xml:607
#, no-c-format
+msgid "The web.xml and the single class can now be used to create a war:"
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:608
+#, no-c-format
msgid ""
-"The URL pattern in the servlet mapping is the only externally visible "
-"configuration element. It controls what URL the web service lives at. This "
-"will be primarily noticed as the location of the WSDL file for this service."
+"<![CDATA[\n"
+"$ mkdir -p WEB-INF/classes\n"
+"$ cp -rp echo WEB-INF/classes/\n"
+"$ cp web.xml WEB-INF\n"
+"$ jar cvf echo.war WEB-INF\n"
+"added manifest\n"
+"adding: WEB-INF/(in = 0) (out= 0)(stored 0%)\n"
+"adding: WEB-INF/classes/(in = 0) (out= 0)(stored 0%)\n"
+"adding: WEB-INF/classes/echo/(in = 0) (out= 0)(stored 0%)\n"
+"adding: WEB-INF/classes/echo/Echo.class(in = 340) (out= 247)(deflated 27%)\n"
+"adding: WEB-INF/web.xml(in = 576) (out= 271)(deflated 52%)\n"
+"]]>"
msgstr ""
#. Tag: para
-#: Web_Services.xml:33
+#: Web_Services.xml:609
#, no-c-format
+msgid "The war can then be deployed:"
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:610
+#, no-c-format
msgid ""
-"The <literal>web.xml</literal> file doesn't contain any web service "
-"related configuration. A new deployment descriptor, <literal>webservices."
-"xml</literal>, is needed to instruct JBoss to treat this servlet as a web "
-"service and not as a normal servlet. We'll need two additional "
-"configuration files, a WSDL file and a JAX-RPC mapping file. All of these "
-"files can be generated using the <literal>wstool</literal> generator that "
-"ships with JBoss."
+"<![CDATA[\n"
+" cp echo.war /usr/local/jboss-4.2.0.GA-ejb3/server/default/deploy\n"
+"]]>"
msgstr ""
#. Tag: para
-#: Web_Services.xml:36
+#: Web_Services.xml:611
#, no-c-format
msgid ""
-"<literal>wstool</literal> can be run from from the command line or as an Ant "
-"task. The JBossWS guide explains in more detail how to run the tool. In both "
-"cases, wstool needs to be pointed to the code and to a configuration file "
-"which describes the files to generate and the endpoint to generate them for. "
-"Here is the configuration file for the hello web service."
+"This will internally invoke <ulink url=\"http://jbws.dyndns.org/mediawiki/"
+"index.php?title=Wsprovide\">wsprovide</ulink>, which will generate the WSDL. "
+"If deployment was successful, and you are using the default settings, it "
+"should be available here: <ulink url=\"http://localhost:8080/echo/Echo?wsdl"
+"\">http://localhost:8080/echo/Echo?wsdl</ulink>"
msgstr ""
+#. Tag: para
+#: Web_Services.xml:612
+#, no-c-format
+msgid ""
+"For a portable JAX-WS deployment, the wrapper classes generated earlier "
+"could be added to the deployment."
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:615
+#, no-c-format
+msgid "Top-Down (Using wsconsume)"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:616
+#, no-c-format
+msgid ""
+"The top-down development strategy begins with the abstract contract for the "
+"service, which includes the WSDL file and zero or more schema files. The "
+"<ulink url=\"http://jbws.dyndns.org/mediawiki/index.php?title=Wsconsume"
+"\">wsconsume</ulink> tool is then used to consume this contract, and produce "
+"annotated Java classes (and optionally sources) that define it."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:619
+#, no-c-format
+msgid "wsconsume seems to have a problem with symlinks on unix systems"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:622
+#, no-c-format
+msgid ""
+"Using the WSDL file from the bottom-up example, a new Java implementation "
+"that adheres to this service can be generated. The "-k" option is "
+"passed to <ulink url=\"http://jbws.dyndns.org/mediawiki/index.php?"
+"title=Wsconsume\">wsconsume</ulink> to preserve the Java source files that "
+"are generated, instead of providing just classes:"
+msgstr ""
+
#. Tag: programlisting
-#: Web_Services.xml:39
+#: Web_Services.xml:623
#, no-c-format
msgid ""
-"<configuration xmlns=\"http://www.jboss.org/jbossws-tools\">\n"
-" <java-wsdl>\n"
-" <service name=\"HelloService\" \n"
-" style=\"rpc\" \n"
-" endpoint=\"org.jboss.ws.hello.Hello\"/>\n"
-" <namespaces target-namespace=\"http://hello.ws.jboss.org/\"\n"
-" type-namespace=\"http://hello.ws.jboss.org/types\"/>\n"
-" <mapping file=\"jaxrpc-mapping.xml\"/>\n"
-" <webservices servlet-link=\"HelloWorldWS\"/>\n"
-" </java-wsdl>\n"
-"</configuration>"
+"<![CDATA[\n"
+" \n"
+"$ wsconsume -k EchoService.wsdl\n"
+"echo/Echo.java\n"
+"echo/EchoResponse.java\n"
+"echo/EchoService.java\n"
+"echo/Echo_Type.java\n"
+"echo/ObjectFactory.java\n"
+"echo/package-info.java\n"
+"echo/Echo.java\n"
+"echo/EchoResponse.java\n"
+"echo/EchoService.java\n"
+"echo/Echo_Type.java\n"
+"echo/ObjectFactory.java\n"
+"echo/package-info.java\n"
+"]]>"
msgstr ""
#. Tag: para
-#: Web_Services.xml:40
+#: Web_Services.xml:624
#, no-c-format
-msgid "For a complete description of this file, see the JBossWS documentation."
+msgid "The following table shows the purpose of each generated file:"
msgstr ""
+#. Tag: emphasis
+#: Web_Services.xml:633
+#, no-c-format
+msgid "File"
+msgstr ""
+
+#. Tag: emphasis
+#: Web_Services.xml:638
+#, no-c-format
+msgid "Purpose"
+msgstr ""
+
#. Tag: para
-#: Web_Services.xml:43
+#: Web_Services.xml:644
#, no-c-format
+msgid "Echo.java"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:647
+#, no-c-format
+msgid "Service Endpoint Interface"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:652
+#, no-c-format
+msgid "Echo_Type.java"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:655
+#, no-c-format
+msgid "Wrapper bean for request message"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:660
+#, no-c-format
+msgid "EchoResponse.java"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:663
+#, no-c-format
+msgid "Wrapper bean for response message"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:668
+#, no-c-format
+msgid "ObjectFactory.java"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:671
+#, no-c-format
+msgid "JAXB XML Registry"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:676
+#, no-c-format
+msgid "package-info.java"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:679
+#, no-c-format
+msgid "Holder for JAXB package annotations"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:684
+#, no-c-format
+msgid "EchoService.java"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:687
+#, no-c-format
+msgid "Used only by JAX-WS clients"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:693
+#, no-c-format
msgid ""
-"The WSDL file that wscompile generated for our <literal>config.xml</literal> "
-"file is shown below. Note that the SOAP address isn't provided in the "
-"WSDL file. JBoss will insert the correct URL for the WSDL when it deploys "
-"the web service."
+"Examining the Service Endpoint Interface reveals annotations that are more "
+"explicit than in the class written by hand in the bottom-up example, "
+"however, these evaluate to the same contract:"
msgstr ""
#. Tag: programlisting
-#: Web_Services.xml:46
+#: Web_Services.xml:694
#, no-c-format
msgid ""
-"<definitions name=\"HelloService\" \n"
-" targetNamespace=\"http://hello.ws.jboss.org/\" \n"
-" xmlns=\"http://schemas.xmlsoap.org/wsdl/\"\n"
-" xmlns:soap=\"http://schemas.xmlsoap.org/wsdl/soap/\" \n"
-" xmlns:tns=\"http://hello.ws.jboss.org/\"\n"
-" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\n"
-" <types/>\n"
-" <message name=\"Hello_hello\">\n"
-" <part name=\"String_1\" type=\"xsd:string\"/>\n"
-" </message>\n"
-" <message name=\"Hello_helloResponse\">\n"
-" <part name=\"result\" type=\"xsd:string\"/>\n"
-" </message>\n"
-" <portType name=\"Hello\">\n"
-" <operation name=\"hello\" parameterOrder=\"String_1\">\n"
-" <input message=\"tns:Hello_hello\"/>\n"
-" <output message=\"tns:Hello_helloResponse\"/>\n"
-" </operation>\n"
-" </portType>\n"
-" <binding name=\"HelloBinding\" type=\"tns:Hello\">\n"
-" <soap:binding style=\"rpc\" transport=\"http://schemas.xmlsoap."
-"org/soap/http\"/>\n"
-" <operation name=\"hello\">\n"
-" <soap:operation soapAction=\"\"/>\n"
-" <input>\n"
-" <soap:body namespace=\"http://hello.ws.jboss.org/\" use="
-"\"literal\"/>\n"
-" </input>\n"
-" <output>\n"
-" <soap:body namespace=\"http://hello.ws.jboss.org/\" use="
-"\"literal\"/>\n"
-" </output>\n"
-" </operation>\n"
-" </binding>\n"
-" <service name=\"HelloService\">\n"
-" <port binding=\"tns:HelloBinding\" name=\"HelloPort\">\n"
-" <soap:address location=\"REPLACE_WITH_ACTUAL_URL\"/>\n"
-" </port>\n"
-" </service>\n"
-"</definitions>"
+"<![CDATA[\n"
+"@WebService(name = "Echo", targetNamespace = "http://echo/"
+"")\n"
+"public interface Echo {\n"
+"@WebMethod\n"
+"@WebResult(targetNamespace = "")\n"
+"@RequestWrapper(localName = "echo", targetNamespace = "http://"
+"echo/", className = "echo.Echo_Type")\n"
+"@ResponseWrapper(localName = "echoResponse", targetNamespace = "
+""http://echo/", className = "echo.EchoResponse")\n"
+"public String echo(\n"
+"@WebParam(name = "arg0", targetNamespace = "")\n"
+"String arg0);\n"
+" \n"
+"}\n"
+"]]>"
msgstr ""
#. Tag: para
-#: Web_Services.xml:47
+#: Web_Services.xml:695
#, no-c-format
msgid ""
-"We also asked wscompile to generate a JAX-RPC mapping file. This is shown "
-"below."
+"The only missing piece (besides the packaging) is the implementation class, "
+"which can now be written, using the above interface."
msgstr ""
#. Tag: programlisting
-#: Web_Services.xml:50
+#: Web_Services.xml:696
#, no-c-format
msgid ""
-"<?xml version='1.0' encoding='UTF-8'?>\n"
-"<java-wsdl-mapping version=\"1.1\" \n"
-" xmlns=\"http://java.sun.com/xml/ns/\"Whats_new_in_JBoss_4-"
-"J2EE_Certification_and_Standards_Compliance\"\n"
-" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
-" xsi:schemaLocation=\"http://java.sun.com/xml/ns/j2ee \n"
-" http://www.ibm.com/webservices/xsd/"
-"j2ee_jaxrpc_mapping_1_1.xsd\">\n"
-" <package-mapping>\n"
-" <package-type>org.jboss.ws.hello</package-type>\n"
-" <namespaceURI>http://hello.ws.jboss.org/types</namespaceURI>\n"
-" </package-mapping>\n"
-" <service-interface-mapping>\n"
-" <service-interface>org.jboss.ws.hello.HelloService</service-"
-"interface>\n"
-" <wsdl-service-name xmlns:serviceNS=\"http://hello.ws.jboss.org/\">\n"
-" serviceNS:HelloService\n"
-" </wsdl-service-name>\n"
-" <port-mapping>\n"
-" <port-name>HelloPort</port-name>\n"
-" <java-port-name>HelloPort</java-port-name>\n"
-" </port-mapping>\n"
-" </service-interface-mapping>\n"
-" <service-endpoint-interface-mapping>\n"
-" <service-endpoint-interface>org.jboss.ws.hello.Hello</service-"
-"endpoint-interface>\n"
-" <wsdl-port-type xmlns:portTypeNS=\"http://hello.ws.jboss.org/\">\n"
-" portTypeNS:Hello\n"
-" </wsdl-port-type>\n"
-" <wsdl-binding xmlns:bindingNS=\"http://hello.ws.jboss.org/\">\n"
-" bindingNS:HelloBinding\n"
-" </wsdl-binding>\n"
-" <service-endpoint-method-mapping>\n"
-" <java-method-name>hello</java-method-name>\n"
-" <wsdl-operation>hello</wsdl-operation>\n"
-" <method-param-parts-mapping>\n"
-" <param-position>0</param-position>\n"
-" <param-type>java.lang.String</param-type>\n"
-" <wsdl-message-mapping>\n"
-" <wsdl-message xmlns:wsdlMsgNS=\"http://hello.ws.jboss.org/\">\n"
-" wsdlMsgNS:Hello_hello\n"
-" </wsdl-message>\n"
-" <wsdl-message-part-name>String_1</wsdl-message-part-name>\n"
-" <parameter-mode>IN</parameter-mode>\n"
-" </wsdl-message-mapping>\n"
-" </method-param-parts-mapping>\n"
-" <wsdl-return-value-mapping>\n"
-" <method-return-value>java.lang.String</method-return-value>\n"
-" <wsdl-message xmlns:wsdlMsgNS=\"http://hello.ws.jboss.org/\">\n"
-" wsdlMsgNS:Hello_helloResponse\n"
-" </wsdl-message>\n"
-" <wsdl-message-part-name>result</wsdl-message-part-name>\n"
-" </wsdl-return-value-mapping>\n"
-" </service-endpoint-method-mapping>\n"
-" </service-endpoint-interface-mapping>\n"
-"</java-wsdl-mapping>"
+"<![CDATA[\n"
+"package echo;\n"
+" \n"
+"@javax.jws.WebService(endpointInterface="echo.Echo")\n"
+"public class EchoImpl implements Echo\n"
+"{\n"
+"public String echo(String arg0)\n"
+"{\n"
+"return arg0;\n"
+"}\n"
+"}\n"
+"]]>"
msgstr ""
+#. Tag: title
+#: Web_Services.xml:699
+#, no-c-format
+msgid "Client Side"
+msgstr ""
+
#. Tag: para
-#: Web_Services.xml:51
+#: Web_Services.xml:700
#, no-c-format
msgid ""
-"Finally, we generates a <literal>webservices.xml</literal> file. This file "
-"links to our WSDL file with the <literal>wsdl-file</literal> element and to "
-"the mapping file using the <literal>jaxrpc-mapping-file</literal> element."
+"Before going to detail on the client-side it is important to understand the "
+"decoupling concept that is central to Web Services. Web Services are not the "
+"best fit for internal RPC, even though they can be used in this way. There "
+"are much better technologies for this (CORBA, and RMI for example). Web "
+"Services were designed specifically for interoperable coarse-grained "
+"correspondence. There is no expectation or guarantee that any party "
+"participating in a Web Service interaction will be at any particular "
+"location, running on any particular OS, or written in any particular "
+"programming language. So because of this, it is important to clearly "
+"separate client and server implementations. The only thing they should have "
+"in common is the abstract contract definition. If, for whatever reason, your "
+"software does not adhere to this principal, then you should not be using Web "
+"Services. For the above reasons, the <emphasis role=\"bold\"> "
+"<emphasis>recommended methodology for developing a client is</emphasis> </"
+"emphasis> to follow <emphasis role=\"bold\"> <emphasis>the top-down "
+"approach</emphasis> </emphasis> , even if the client is running on the same "
+"server."
msgstr ""
#. Tag: para
-#: Web_Services.xml:54
+#: Web_Services.xml:707
#, no-c-format
msgid ""
-"In addition to this, a <literal>port-component</literal> element is needed "
-"that maps a port in the WSDL file to a particular service implementation. "
-"For our JSE, this is done with a <literal>servlet-link</literal> inside the "
-"<literal>service-impl-bean</literal> element. The servlet link must be the "
-"same as the name of the pseudo-servlet we declared in the <literal>web.xml</"
-"literal> file."
+"Let's repeat the process of the top-down section, although using the "
+"deployed WSDL, instead of the one generated offline by <ulink url=\"http://"
+"jbws.dyndns.org/mediawiki/index.php?title=Wsprovide\">wsprovide</ulink>. The "
+"reason why we do this is just to get the right value for soap:address. This "
+"value must be computed at deploy time, since it is based on container "
+"configuration specifics. You could of course edit the WSDL file yourself, "
+"although you need to ensure that the path is correct."
msgstr ""
+#. Tag: para
+#: Web_Services.xml:708
+#, no-c-format
+msgid "Offline version:"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:710
+#, no-c-format
+msgid "Online version:"
+msgstr ""
+
#. Tag: programlisting
-#: Web_Services.xml:57
+#: Web_Services.xml:711
#, no-c-format
msgid ""
-"<webservices version=\"1.1\" \n"
-" xmlns=\"http://java.sun.com/xml/ns/\"Whats_new_in_JBoss_4-"
-"J2EE_Certification_and_Standards_Compliance\" xmlns:impl=\"http://hello.ws."
-"jboss.org/\"\n"
-" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
-" xsi:schemaLocation=\"http://java.sun.com/xml/ns/j2ee \n"
-" http://www.ibm.com/webservices/xsd/"
-"j2ee_web_services_1_1.xsd\">\n"
-" <webservice-description>\n"
-" <webservice-description-name>HelloService</webservice-"
-"description-name>\n"
-" <wsdl-file>WEB-INF/wsdl/HelloService.wsdl</wsdl-file>\n"
-" <jaxrpc-mapping-file>WEB-INF/jaxrpc-mapping.xml</jaxrpc-"
-"mapping-file>\n"
-" <port-component>\n"
-" <port-component-name>HelloPort</port-component-"
-"name>\n"
-" <wsdl-port>impl:HelloPort</wsdl-port>\n"
-" <service-endpoint-interface>org.jboss.ws.hello.Hello</"
-"service-endpoint-interface>\n"
-" <service-impl-bean>\n"
-" <servlet-link>HelloWorldWS</servlet-link>\n"
-" </service-impl-bean>\n"
-" </port-component>\n"
-" </webservice-description>\n"
-"</webservices>"
+"<![CDATA[\n"
+"<service name="EchoService">\n"
+"<port binding="tns:EchoBinding" name="EchoPort">\n"
+"<soap:address location="http://localhost.localdomain:8080/echo/"
+"Echo"/>\n"
+"</port>\n"
+"</service>\n"
+"]]>"
msgstr ""
#. Tag: para
-#: Web_Services.xml:58
+#: Web_Services.xml:712
#, no-c-format
msgid ""
-"With these completed we can deploy the WAR file containing our web service. "
-"All the deployment descriptors go in the <literal>WEB-INF</literal> "
-"directory, as shown in <xref linkend=\"JAX_RPC_Service_Endpoints-"
-"The_structure_of_hello_servlet.war\"/>. It's important to note that the "
-"WSDL file is required to be in the wsdl subdirectory."
+"Using the online deployed version with <ulink url=\"http://jbws.dyndns.org/"
+"mediawiki/index.php?title=Wsconsume\">wsconsume</ulink>:"
msgstr ""
+#. Tag: programlisting
+#: Web_Services.xml:713
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"$ wsconsume -k http://localhost:8080/echo/Echo?wsdl\n"
+"echo/Echo.java\n"
+"echo/EchoResponse.java\n"
+"echo/EchoService.java\n"
+"echo/Echo_Type.java\n"
+"echo/ObjectFactory.java\n"
+"echo/package-info.java\n"
+"echo/Echo.java\n"
+"echo/EchoResponse.java\n"
+"echo/EchoService.java\n"
+"echo/Echo_Type.java\n"
+"echo/ObjectFactory.java\n"
+"echo/package-info.java\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:714
+#, no-c-format
+msgid ""
+"The one class that was not examined in the top-down section, was EchoService."
+"java. Notice how it stores the location the WSDL was obtained from."
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:715
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"@WebServiceClient(name = "EchoService", targetNamespace = ""
+"http://echo/", wsdlLocation = "http://localhost:8080/echo/Echo?"
+"wsdl")\n"
+"public class EchoService extends Service\n"
+"{\n"
+"private final static URL ECHOSERVICE_WSDL_LOCATION;\n"
+" \n"
+"static {\n"
+"URL url = null;\n"
+"try {\n"
+"url = new URL("http://localhost:8080/echo/Echo?wsdl");\n"
+"} catch (MalformedURLException e) {\n"
+"e.printStackTrace();\n"
+"}\n"
+"ECHOSERVICE_WSDL_LOCATION = url;\n"
+"}\n"
+" \n"
+"public EchoService(URL wsdlLocation, QName serviceName) {\n"
+"super(wsdlLocation, serviceName);\n"
+"}\n"
+" \n"
+"public EchoService() {\n"
+"super(ECHOSERVICE_WSDL_LOCATION, new QName("http://echo/", ""
+"EchoService"));\n"
+"}\n"
+" \n"
+"@WebEndpoint(name = "EchoPort")\n"
+"public Echo getEchoPort() {\n"
+"return (Echo)super.getPort(new QName("http://echo/", ""
+"EchoPort"), Echo.class);\n"
+"}\n"
+"}\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:716
+#, no-c-format
+msgid ""
+"As you can see, this generated class extends the main client entry point in "
+"JAX-WS, javax.xml.ws.Service. While you can use Service directly, this is "
+"far simpler since it provides the configuration info for you. The only "
+"method we really care about is the getEchoPort() method, which returns an "
+"instance of our Service Endpoint Interface. Any WS operation can then be "
+"called by just invoking a method on the returned interface."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:720
+#, no-c-format
+msgid ""
+"It's not recommended to refer to a remote WSDL URL in a production "
+"application. This causes network I/O every time you instantiate the Service "
+"Object. Instead, use the tool on a saved local copy, or use the URL version "
+"of the constructor to provide a new WSDL location."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:724
+#, no-c-format
+msgid "All that is left to do, is write and compile the client:"
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:725
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"import echo.*;\n"
+"..\n"
+"public class EchoClient\n"
+"{\n"
+"public static void main(String args[])\n"
+"{\n"
+"if (args.length != 1)\n"
+"{\n"
+"System.err.println("usage: EchoClient <message>");\n"
+"System.exit(1);\n"
+"}\n"
+" \n"
+"EchoService service = new EchoService();\n"
+"Echo echo = service.getEchoPort();\n"
+"System.out.println("Server said: " + echo.echo(args[0]));\n"
+"} \n"
+"}\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:726
+#, no-c-format
+msgid ""
+"It can then be easily executed using the <ulink url=\"http://jbws.dyndns.org/"
+"mediawiki/index.php?title=Wsrunclient\">wsrunclient</ulink> tool. This is "
+"just a convenience tool that invokes java with the needed classpath:"
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:727
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"$ wsrunclient EchoClient 'Hello World!'\n"
+"Server said: Hello World!\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:728
+#, no-c-format
+msgid ""
+"It is easy to change the endpoint address of your operation at runtime, "
+"setting the ENDPOINT_ADDRESS_PROPERTY as shown below:"
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:729
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"...\n"
+"EchoService service = new EchoService();\n"
+"Echo echo = service.getEchoPort();\n"
+" \n"
+"/* Set NEW Endpoint Location */\n"
+"String endpointURL = "http://NEW_ENDPOINT_URL";\n"
+"BindingProvider bp = (BindingProvider)echo;\n"
+"bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "
+"endpointURL);\n"
+" \n"
+"System.out.println("Server said: " + echo.echo(args[0]));\n"
+"...\n"
+"]]>"
+msgstr ""
+
#. Tag: title
-#: Web_Services.xml:62
+#: Web_Services.xml:732
#, no-c-format
-msgid "The structure of hello-servlet.war"
+msgid "Command-line & Ant Task Reference"
msgstr ""
+#. Tag: ulink
+#: Web_Services.xml:736
+#, no-c-format
+msgid "wsconsume reference page"
+msgstr ""
+
+#. Tag: ulink
+#: Web_Services.xml:741
+#, fuzzy, no-c-format
+msgid "wsprovide reference page"
+msgstr "服务架构"
+
+#. Tag: ulink
+#: Web_Services.xml:746
+#, no-c-format
+msgid "wsrunclient reference page"
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:752
+#, no-c-format
+msgid "JAX-WS binding customization"
+msgstr ""
+
#. Tag: para
-#: Web_Services.xml:69
+#: Web_Services.xml:753
#, no-c-format
+msgid "An introduction to binding customizations:"
+msgstr ""
+
+#. Tag: ulink
+#: Web_Services.xml:757
+#, no-c-format
+msgid "http://java.sun.com/webservices/docs/2.0/jaxws/customizations.html"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:761
+#, no-c-format
+msgid "The schema for the binding customization files can be found here:"
+msgstr ""
+
+#. Tag: ulink
+#: Web_Services.xml:765
+#, no-c-format
+msgid "binding customization"
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:772
+#, fuzzy, no-c-format
+msgid "Web Service Extensions"
+msgstr "代理服务"
+
+#. Tag: title
+#: Web_Services.xml:774
+#, no-c-format
+msgid "WS-Addressing"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:775
+#, no-c-format
msgid ""
-"To deploy and test the hello web service, run the following from the "
-"examples directory:"
+"This section describes how <ulink url=\"http://www.w3.org/TR/ws-addr-core"
+"\">WS-Addressing</ulink> can be used to provide a staful service endpoint."
msgstr ""
+#. Tag: title
+#: Web_Services.xml:777 Web_Services.xml:827
+#, no-c-format
+msgid "<title>Specifications</title>"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:778
+#, no-c-format
+msgid ""
+"WS-Addressing is defined by a combination of the following specifications "
+"from the W3C Candidate Recommendation 17 August 2005. The WS-Addressing API "
+"is standardized by <ulink url=\"http://www.jcp.org/en/jsr/detail?id=261"
+"\">JSR-261 - Java API for XML Web Services Addressing</ulink>"
+msgstr ""
+
+#. Tag: ulink
+#: Web_Services.xml:782
+#, no-c-format
+msgid "Web Services Addressing 1.0 - Core"
+msgstr ""
+
+#. Tag: ulink
+#: Web_Services.xml:787
+#, no-c-format
+msgid "Web Services Addressing 1.0 - SOAP Binding"
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:793
+#, no-c-format
+msgid "Addressing Endpoint"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:794
+#, no-c-format
+msgid ""
+"The following endpoint implementation has a set of operation for a typical "
+"stateful shopping chart application."
+msgstr ""
+
#. Tag: programlisting
-#: Web_Services.xml:72
+#: Web_Services.xml:795
#, no-c-format
msgid ""
-"[examples]$ ant -Dchap=ws -Dex=1 run-example\n"
+"<![CDATA[\n"
+"@WebService(name = "StatefulEndpoint", targetNamespace = ""
+"http://org.jboss.ws/samples/wsaddressing", serviceName = ""
+"TestService")\n"
+"@EndpointConfig(configName = "Standard WSAddressing Endpoint")\n"
+"@HandlerChain(file = "WEB-INF/jaxws-handlers.xml")\n"
+"@SOAPBinding(style = SOAPBinding.Style.RPC)\n"
+"public class StatefulEndpointImpl implements StatefulEndpoint, "
+"ServiceLifecycle\n"
+"{\n"
+"@WebMethod\n"
+"public void addItem(String item)\n"
+"{ ... }\n"
+" \n"
+"@WebMethod\n"
+"public void checkout()\n"
+"{ ... }\n"
+" \n"
+"@WebMethod\n"
+"public String getItems()\n"
+"{ ... }\n"
+"}\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:796
+#, no-c-format
+msgid ""
+"It uses the <ulink url=\"http://jbws.dyndns.org/mediawiki/index.php?"
+"title=JAX-WS_Endpoint_Configuration#_Standard_WSAddressing_Endpoint\">JAX-WS "
+"Endpoint Configuration# Standard WSAddressing Endpoint</ulink> to enable the "
+"server side addressing handler. It processes the incomming WS-Addressing "
+"header elements and provides access to them through the JSR-261 API."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:797
+#, no-c-format
+msgid "The endpoint handler chain"
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:798
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"<handler-chains xmlns="http://java.sun.com/xml/ns/javaee" xmlns:"
+"xsi="http://www.w3.org/2001/XMLSchema-instance"\n"
+"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee "
+"javaee_web_services_1_2.xsd">\n"
+" \n"
+"<handler-chain>\n"
+"<protocol-bindings>##SOAP11_HTTP</protocol-bindings>\n"
+"<handler>\n"
+"<handler-name>Application Server Handler</handler-name>\n"
+"<handler-class>org.jboss.test.ws.jaxws.samples.wsaddressing."
+"ServerHandler</handler-class>\n"
+"</handler>\n"
+"</handler-chain>\n"
+" \n"
+"</handler-chains>\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:799
+#, no-c-format
+msgid ""
+"defines an application specific hander that assignes/processes stateful "
+"client ids."
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:802
+#, no-c-format
+msgid "Addressing Client"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:803
+#, no-c-format
+msgid ""
+"On the client side there are simmilar handlers that does the reverse. It "
+"uses the JSR-261 API to add WS-Addressing header elements including the "
+"clientid association."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:804
+#, no-c-format
+msgid "The client sets a custom handler chain in the binding"
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:805
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"Service service = Service.create(wsdlURL, serviceName);\n"
+"port1 = (StatefulEndpoint)service.getPort(StatefulEndpoint.class);\n"
+"BindingProvider bindingProvider = (BindingProvider)port1;\n"
+" \n"
+"List<Handler> customHandlerChain = new ArrayList<Handler>();\n"
+"customHandlerChain.add(new ClientHandler());\n"
+"customHandlerChain.add(new WSAddressingClientHandler());\n"
+"bindingProvider.getBinding().setHandlerChain(customHandlerChain);\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:807
+#, no-c-format
+msgid ""
+"The WSAddressingClientHandler is provided by JBossWS and reads/writes the "
+"addressing properties and puts then into the message context."
+msgstr ""
+
+#. Tag: emphasis
+#: Web_Services.xml:809
+#, no-c-format
+msgid "A client connecting to the stateful endpoint"
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:811
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"public class AddressingStatefulTestCase extends JBossWSTest\n"
+"{\n"
+"public void testAddItem() throws Exception\n"
+"{\n"
+"port1.addItem("Ice Cream");\n"
+"port1.addItem("Ferrari");\n"
+" \n"
+"port2.addItem("Mars Bar");\n"
+"port2.addItem("Porsche");\n"
+"}\n"
+" \n"
+"public void testGetItems() throws Exception\n"
+"{\n"
+"String items1 = port1.getItems();\n"
+"assertEquals("[Ice Cream, Ferrari]", items1);\n"
+" \n"
+"String items2 = port2.getItems();\n"
+"assertEquals("[Mars Bar, Porsche]", items2);\n"
+"}\n"
+"}\n"
+"]]>"
+msgstr ""
+
+#. Tag: emphasis
+#: Web_Services.xml:813 Web_Services.xml:1072
+#, no-c-format
+msgid "SOAP message exchange"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:815
+#, no-c-format
+msgid "Below you see the SOAP messages that are beeing exchanged."
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:816
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/"
+"'>\n"
+"<env:Header xmlns:wsa='http://schemas.xmlsoap.org/ws/2004/08/"
+"addressing'>\n"
+"<wsa:To>uri:jbossws-samples-wsaddr/TestService</wsa:To>\n"
+"<wsa:Action>http://org.jboss.ws/addressing/stateful/action</wsa:"
+"Action>\n"
+"<wsa:ReferenceParameters>\n"
+"<ns1:clientid xmlns:ns1='http://somens'>clientid-1</ns1:"
+"clientid>\n"
+"</wsa:ReferenceParameters>\n"
+"</env:Header>\n"
+"<env:Body>\n"
+"<ns1:addItem xmlns:ns1='http://org.jboss.ws/samples/wsaddr'"
+">\n"
+"<String_1>Ice Cream</String_1>\n"
+"</ns1:addItem>\n"
+"</env:Body>\n"
+"</env:Envelope>\n"
+" \n"
+"<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/"
+"'>\n"
+"<env:Header xmlns:wsa='http://schemas.xmlsoap.org/ws/2004/08/"
+"addressing'>\n"
+"<wsa:To>http://www.w3.org/2005/08/addressing/anonymous</wsa:To>\n"
+"<wsa:Action>http://org.jboss.ws/addressing/stateful/actionReply</"
+"wsa:Action>\n"
+"<ns1:clientid xmlns:ns1='http://somens'>clientid-1</ns1:"
+"clientid>\n"
+"</env:Header>\n"
+"<env:Body>\n"
+"<ns1:addItemResponse xmlns:ns1='http://org.jboss.ws/samples/"
+"wsaddr'/>\n"
+"</env:Body>\n"
+"</env:Envelope>\n"
+" \n"
"...\n"
-"run-example1:\n"
-" [echo] Waiting for 5 seconds for deploy...\n"
-" [java] Contacting webservice at http://localhost:8080/hello-servlet/"
-"Hello?wsdl\n"
-" [java] hello.hello(JBoss user)\n"
-" [java] output:Hello JBoss user!"
+" \n"
+"<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/"
+"'>\n"
+"<env:Header xmlns:wsa='http://schemas.xmlsoap.org/ws/2004/08/"
+"addressing'>\n"
+"<wsa:To>uri:jbossws-samples-wsaddr/TestService</wsa:To>\n"
+"<wsa:Action>http://org.jboss.ws/addressing/stateful/action</wsa:"
+"Action>\n"
+"<wsa:ReferenceParameters>\n"
+"<ns1:clientid xmlns:ns1='http://somens'>clientid-1</ns1:"
+"clientid>\n"
+"</wsa:ReferenceParameters>\n"
+"</env:Header>\n"
+"<env:Body>\n"
+"<ns1:getItems xmlns:ns1='http://org.jboss.ws/samples/wsaddr'/"
+">\n"
+"</env:Body>\n"
+"</env:Envelope>\n"
+" \n"
+"<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/"
+"'>\n"
+"<env:Header xmlns:wsa='http://schemas.xmlsoap.org/ws/2004/08/"
+"addressing'>\n"
+"<wsa:To>http://www.w3.org/2005/08/addressing/anonymous</wsa:To>\n"
+"<wsa:Action>http://org.jboss.ws/addressing/stateful/actionReply</"
+"wsa:Action>\n"
+"<ns1:clientid xmlns:ns1='http://somens'>clientid-1</ns1:"
+"clientid>\n"
+"</env:Header>\n"
+"<env:Body>\n"
+"<ns1:getItemsResponse xmlns:ns1='http://org.jboss.ws/samples/"
+"wsaddr'>\n"
+"<result>[Ice Cream, Ferrari]</result>\n"
+"</ns1:getItemsResponse>\n"
+"</env:Body>\n"
+"</env:Envelope>\n"
+"]]>"
msgstr ""
+#. Tag: title
+#: Web_Services.xml:820
+#, no-c-format
+msgid "WS-BPEL"
+msgstr ""
+
#. Tag: para
-#: Web_Services.xml:73
+#: Web_Services.xml:821
#, no-c-format
msgid ""
-"The server log will contain information about the deployment including the "
-"temporary location of the generated WSDL and wsdd files. It also shows the "
-"full URL of the web service."
+"WS-BPEL is not supported with JAX-WS, please refer to <ulink url=\"http://"
+"jbws.dyndns.org/mediawiki/index.php?title=JAX-RPC_User_Guide#WS-BPEL\">JAX-"
+"RPC User Guide#WS-BPEL</ulink>."
msgstr ""
+#. Tag: title
+#: Web_Services.xml:824
+#, no-c-format
+msgid "WS-Eventing"
+msgstr ""
+
#. Tag: para
-#: Web_Services.xml:76
+#: Web_Services.xml:825
#, no-c-format
msgid ""
-"Note the URL the JBoss publishes the WSDL file at. Our web application name "
-"is <literal>hello-servlet</literal> and we mapped the servlet to <literal>/"
-"Hello</literal> in the <literal>web.xml</literal> file so the web service is "
-"mappend to <literal>/hello-servlet/Hello</literal>. The <literal>?wsdl</"
-"literal> query returns the WSDL file."
+"WS-Eventing specifies a set of operations that allow an event consumer to "
+"register (subscribe) with an event producer (source) to receive events "
+"(notifications) in an asynchronous fashion."
msgstr ""
#. Tag: para
-#: Web_Services.xml:79
+#: Web_Services.xml:828
#, no-c-format
msgid ""
-"If you aren't sure what the URL of the WSDL file will be, JBoss provides "
-"a way to list the web services available on the system at <literal>/jbossws/"
-"services</literal>. <xref linkend=\"JAX_RPC_Service_Endpoints-"
-"The_web_services_list\"/> shows a view of the services list."
+"WS-Eventing is defined by the combination of the following specifications:"
msgstr ""
+#. Tag: ulink
+#: Web_Services.xml:832
+#, no-c-format
+msgid "WS-Eventing specification"
+msgstr ""
+
+#. Tag: ulink
+#: Web_Services.xml:837
+#, no-c-format
+msgid "WS-Addressing Specifications"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:841
+#, no-c-format
+msgid ""
+"The following section will introduce the main eventing actors and their "
+"responsiblities."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:844
+#, no-c-format
+msgid ""
+"The original eventing specification builds upon WS-Addressing 2004/08. "
+"JBossWS however decided to stick to the latest version, which is the W3C "
+"candidate release."
+msgstr ""
+
#. Tag: title
-#: Web_Services.xml:83
+#: Web_Services.xml:849
#, no-c-format
-msgid "The web services list"
+msgid "Collaboration"
msgstr ""
#. Tag: para
-#: Web_Services.xml:90
+#: Web_Services.xml:862
#, no-c-format
msgid ""
-"The services list shows all of the deployed web services along with the name "
-"of the deployment unit and a link to the WSDL file for that service."
+"An event sink (web service client) sends a subscribtion request to the event "
+"source endpoint. This includes the event sink endpoint address where "
+"notifications should delivered. Upon successful subscription the sink "
+"receives a leased subscription ID that can be used to identify the client in "
+"subsequent requests."
msgstr ""
+#. Tag: para
+#: Web_Services.xml:865
+#, no-c-format
+msgid ""
+"A successfully registered event sink directs management requests (Renew, "
+"GetStatus, Unsubscribe) to the subscription manager endpoint using the "
+"previously received subscription ID. The subscription manager endpoint "
+"address was returned as part of the subscription response in the first place."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:868
+#, no-c-format
+msgid ""
+"The actual event sink (application) emits notification messages through the "
+"JBossWS-Eventing module. JBossWS-Eventing dispatches the notification to any "
+"subscriber endpoint that is registered with a particular event source.s"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:871
+#, no-c-format
+msgid ""
+"Besides notifications JBossWS-Eventing may emit lifecycle events at any "
+"time, i.e. to inform an event sink that a subscription was canceled. This "
+"can be the case when the subscription expired or the event source was "
+"undeployed."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:875
+#, no-c-format
+msgid ""
+"It is the users responsibilty to supply the web service endpoints "
+"(EventSourceEndpoint, SubscriptionManagerEndpoint) that are required for a "
+"complete event source deployment. Fortunatly JBossWS-Eventing already ships "
+"with a implementation that can be used right away. All that's left todo "
+"is packaging of standard JSR-109 deployment archive that includes the event "
+"source specific WSDL and points to the JBossWS-Eventing endpoint "
+"implementations."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:876
+#, fuzzy, no-c-format
+msgid "The relevant steps are:"
+msgstr "子元素是:"
+
+#. Tag: para
+#: Web_Services.xml:879
+#, no-c-format
+msgid ""
+"Create a custom WSDL that describes your event source, in respect to the "
+"notification schema (1) and the fact that is actually contains an event "
+"source port (2)"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:882
+#, no-c-format
+msgid ""
+"Use the JBossWS SEI (3) and endpoint (4) implementations (webservices.xml, "
+"web.xml)."
+msgstr ""
+
#. Tag: title
-#: Web_Services.xml:96
+#: Web_Services.xml:887
#, no-c-format
-msgid "EJB Endpoints"
+msgid "Setup an event source endpoint"
msgstr ""
#. Tag: para
-#: Web_Services.xml:97
+#: Web_Services.xml:888
#, no-c-format
msgid ""
-"Web services can also be provided from the EJB tier. Any stateless session "
-"bean can serve as the endpoint for a web service in almost the same way as "
-"the JAX-RPC endpoints. To see how this works, we will adapt the "
-"<literal>HelloServlet</literal> example into a session bean. Here is the "
-"code:"
+"With JAX-WS the event source setup has actually become quiet easy. All you "
+"need to do is to subclass your endpoint implementation from "
+"<literal>AbstractEventSourceEndpoint</literal> and a subscription manager "
+"from <literal>AbstractSubscriptionManagerEndpoint</literal> and finally "
+"point that implementation to a <ulink url=\"http://jbws.dyndns.org/mediawiki/"
+"index.php?title=JAX-WS_User_Guide#The_WSDL_that_describes_an_event_source"
+"\">event source specific WSDL</ulink>."
msgstr ""
#. Tag: programlisting
-#: Web_Services.xml:100
+#: Web_Services.xml:889
#, no-c-format
msgid ""
-"package org.jboss.ws.hello;\n"
+"<![CDATA[\n"
+"package org.jboss.test.ws.jaxws.samples.wseventing;\n"
+"..\n"
+"import javax.jws.WebService;\n"
"\n"
-"import javax.ejb.EJBException;\n"
-"import javax.ejb.SessionBean;\n"
-"import javax.ejb.SessionContext;\n"
-"\n"
-"public class HelloBean\n"
-" implements SessionBean\n"
+"import org.jboss.logging.Logger;\n"
+"import org.jboss.ws.annotation.EndpointConfig;\n"
+"import org.jboss.ws.extensions.eventing.jaxws.AbstractEventSourceEndpoint;\n"
+" \n"
+"/**\n"
+"* @author Heiko.Braun at jboss.org\n"
+"* @version $Id$\n"
+"* @since 18.01.2007\n"
+"*/\n"
+"@WebService"
+"( (1)\n"
+"name = "EventSource",\n"
+"portName = "EventSourcePort",\n"
+"targetNamespace = "http://schemas.xmlsoap.org/ws/2004/08/"
+"eventing",\n"
+"wsdlLocation = "/WEB-INF/wsdl/sysmon."
+"wsdl", (2)\n"
+"endpointInterface = "org.jboss.ws.extensions.eventing.jaxws."
+"EventSourceEndpoint")\n"
+"@EndpointConfig(configName = "Standard WSAddressing "
+"Endpoint") (3)\n"
+"public class SysmonRegistrationEndpoint extends AbstractEventSourceEndpoint "
+"{ (4)\n"
+" \n"
+"private static final Logger log = Logger.getLogger"
+"(SysmonRegistrationEndpoint.class);\n"
+" \n"
+"protected Logger getLogger()\n"
"{\n"
-" public String hello(String name)\n"
-" {\n"
-" return \"Hello \" + name + \"!\";\n"
-" }\n"
-"\n"
-" public void ejbCreate() {};\n"
-" public void ejbRemove() {};\n"
-"\n"
-" public void ejbActivate() {}\n"
-" public void ejbPassivate() {}\n"
-"\n"
-" public void setSessionContext(SessionContext ctx) {}\n"
-"}"
+"return log;\n"
+"}\n"
+"}\n"
+"]]>"
msgstr ""
#. Tag: para
-#: Web_Services.xml:101
+#: Web_Services.xml:892
#, no-c-format
+msgid "Of course we need a <literal>@WebService</literal> annotation"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:895
+#, no-c-format
+msgid "It's important to override the WSDL here"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:898
+#, no-c-format
msgid ""
-"This is a very trivial session bean. Session beans normally require a home "
-"interface and either a local or remote interface. However, it is possible to "
-"omit them if the session bean is only serving as a web services endpoint. "
-"However, we do still need the <literal>Hello</literal> service endpoint "
-"interface that we used in the JSE example."
+"You need to tell JBossWS that it requires WS-Addressing for this endpoint"
msgstr ""
#. Tag: para
-#: Web_Services.xml:104
+#: Web_Services.xml:901
#, no-c-format
msgid ""
-"The <literal>ejb-jar.xml</literal> file is very standard for a session bean. "
-"The normal session bean parameters are explained in <xref linkend="
-"\"EJBs_on_JBoss\"/>. The only new element is the <literal>service-endpoint</"
-"literal> element, which declares the service endpoint interface for the web "
-"service."
+"Subclass a predefined implementation that knows how to delegate to the "
+"actual eventing service implementation"
msgstr ""
-#. Tag: programlisting
-#: Web_Services.xml:107
+#. Tag: title
+#: Web_Services.xml:906
#, no-c-format
+msgid "The WSDL that describes an event source"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:907
+#, no-c-format
msgid ""
-"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
-"<ejb-jar xmlns=\"http://java.sun.com/xml/ns/\"Whats_new_in_JBoss_4-"
-"J2EE_Certification_and_Standards_Compliance\" version=\"2.1\"\n"
-" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" \n"
-" xsi:schemaLocation=\"http://java.sun.com/xml/ns/j2ee \n"
-" http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd"
-"\">\n"
-" <display-name>chapter 12 EJB JAR</display-name>\n"
-" <enterprise-beans>\n"
-" <session>\n"
-" <ejb-name>HelloBean</ejb-name>\n"
-" <emphasis role=\"bold\"><service-endpoint>org.jboss.ws."
-"hello.Hello</service-endpoint></emphasis>\n"
-" <ejb-class>org.jboss.ws.hello.HelloBean</ejb-class>\n"
-" <session-type>Stateless</session-type>\n"
-" <transaction-type>Container</transaction-type>\n"
-" </session>\n"
-" </enterprise-beans>\n"
-" <assembly-descriptor>\n"
-" <method-permission>\n"
-" <unchecked/>\n"
-" <method>\n"
-" <ejb-name>HelloBean</ejb-name>\n"
-" <method-name>*</method-name>\n"
-" </method>\n"
-" </method-permission>\n"
-" <container-transaction>\n"
-" <method>\n"
-" <ejb-name>HelloBean</ejb-name>\n"
-" <method-name>*</method-name>\n"
-" </method>\n"
-" <trans-attribute>Required</trans-attribute>\n"
-" </container-transaction>\n"
-" </assembly-descriptor>\n"
-"</ejb-jar>"
+"Even though we are already using the annotation driven approach, JBossWS "
+"eventing still requires an event source specific WSDL."
msgstr ""
#. Tag: para
-#: Web_Services.xml:108
+#: Web_Services.xml:908
#, no-c-format
msgid ""
-"The accompanying deployment descriptor files can again be generated by the "
-"<literal>wstool</literal> program. The configuration file is nearly "
-"identical, except that instaead of linking to the pseudo-servlet, we link to "
-"the <literal>HelloBean</literal> EJB."
+"The following excerpt shows the relevant WSDL details that describe an event "
+"source."
msgstr ""
#. Tag: programlisting
-#: Web_Services.xml:111
+#: Web_Services.xml:909
#, no-c-format
msgid ""
-"<configuration xmlns=\"http://www.jboss.org/jbossws-tools\">\n"
-" <java-wsdl>\n"
-" <service name=\"HelloService\"\n"
-" style=\"rpc\"\n"
-" endpoint=\"org.jboss.ws.hello.Hello\"/>\n"
-" <namespaces target-namespace=\"http://hello.ws.jboss.org/\"\n"
-" type-namespace=\"http://hello.ws.jboss.org/types\"/>\n"
-" <mapping file=\"jaxrpc-mapping.xml\"/>\n"
-" <webservices ejb-link=\"HelloBean\"/>\n"
-" </java-wsdl>\n"
-"</configuration>"
+"<![CDATA[\n"
+"<?xml version="1.0" encoding="UTF-8"?>\n"
+" \n"
+"<wsdl:definitions\n"
+"targetNamespace="http://www.jboss.org/sysmon"\n"
+"xmlns:tns="http://www.jboss.org/sysmon"\n"
+"xmlns:wse='http://schemas.xmlsoap.org/ws/2004/08/eventing'\n"
+"xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/'\n"
+"xmlns:wsa10='http://www.w3.org/2005/08/addressing'\n"
+"xmlns:xs='http://www.w3.org/2001/XMLSchema'\n"
+"xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">\n"
+" \n"
+"<wsdl:import\n"
+"(1) namespace='http://schemas.xmlsoap.org/ws/2004/08/"
+"eventing'\n"
+"location='jbwse.wsdl' />\n"
+" \n"
+"<wsdl:types>\n"
+" \n"
+"<xs:schema targetNamespace='http://schemas.xmlsoap.org/ws/2004/08/"
+"eventing'>\n"
+"(2) <xs:include schemaLocation='jbwse.xsd'/>\n"
+"</xs:schema>\n"
+" \n"
+"(3) <xs:schema\n"
+"targetNamespace="http://www.jboss.org/sysmon"\n"
+"elementFormDefault="qualified"\n"
+"blockDefault="#all">\n"
+"<xs:element name="SystemStatus">\n"
+"<xs:complexType>\n"
+"<xs:sequence>\n"
+"<xs:element name="Time " type="xs:dateTime"/>\n"
+"<xs:element name="HostName" type="xs:string"/>\n"
+"<xs:element name="HostAddress" type="xs:string"/>\n"
+"<xs:element name="ActiveThreadCount" type="xs:int"/"
+">\n"
+"<xs:element name="FreeMemory" type="xs:string"/>\n"
+"<xs:element name="MaxMemory" type="xs:string"/>\n"
+"</xs:sequence>\n"
+"</xs:complexType>\n"
+"</xs:element>\n"
+"</xs:schema>\n"
+" \n"
+"</wsdl:types>\n"
+" \n"
+"<wsdl:message name='SystemInfoMsg'>\n"
+"<wsdl:part name='body' element='tns:SystemStatus'/"
+">\n"
+"</wsdl:message>\n"
+" \n"
+"(4) <wsdl:portType name='SystemInfo' wse:EventSource='"
+"true'>\n"
+"<wsdl:operation name='SysmonOp'>\n"
+"<wsdl:output message='tns:SystemInfoMsg'/>\n"
+"</wsdl:operation>\n"
+"</wsdl:portType>\n"
+" \n"
+"<wsdl:binding name="SystemInfoBinding" type="tns:"
+"SystemInfo">\n"
+"<soap:binding style="document" transport="http://schemas."
+"xmlsoap.org/soap/http"/>\n"
+"<wsdl:operation name="SysmonOp">\n"
+"<soap:operation soapAction=""/>\n"
+"<wsdl:output>\n"
+"<soap:body use="literal"/>\n"
+"</wsdl:output>\n"
+"</wsdl:operation>\n"
+"</wsdl:binding>\n"
+" \n"
+"</wsdl:definitions>\n"
+"]]>"
msgstr ""
#. Tag: para
-#: Web_Services.xml:112
+#: Web_Services.xml:912
#, no-c-format
msgid ""
-"The generated files are nearly identical to the ones for the previous "
-"example, except for the <literal>webservice.xml</literal> file "
-"<literal>webservices.xml</literal>. The file, shown below, contains "
-"configuration options appropriate to the EJB endpoint."
+"Import the default eventing WSDL, that includes service and port "
+"declarations."
msgstr ""
+#. Tag: para
+#: Web_Services.xml:915
+#, no-c-format
+msgid "Include the default eventing Types"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:918
+#, no-c-format
+msgid "Specifiy the notitification message schema."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:921
+#, no-c-format
+msgid ""
+"Declare a port type, attributed "wse:EventSource='true'" "
+"that points to your notification message schema."
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:926
+#, no-c-format
+msgid "Emitting notifications"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:927
+#, no-c-format
+msgid ""
+"JBossWS-Eventing registeres a event dispatcher within local JNDI tree that "
+"can be used to emit notifications from applications."
+msgstr ""
+
#. Tag: programlisting
-#: Web_Services.xml:115
+#: Web_Services.xml:928
#, no-c-format
msgid ""
-"<webservices version=\"1.1\" \n"
-" xmlns=\"http://java.sun.com/xml/ns/\"Whats_new_in_JBoss_4-"
-"J2EE_Certification_and_Standards_Compliance\" \n"
-" xmlns:impl=\"http://hello.ws.jboss.org/\"\n"
-" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
-" xsi:schemaLocation=\"http://java.sun.com/xml/ns/j2ee \n"
-" http://www.ibm.com/webservices/xsd/"
-"j2ee_web_services_1_1.xsd\">\n"
-" <webservice-description>\n"
-" <webservice-description-name>HelloService</webservice-"
-"description-name>\n"
-" <emphasis role=\"bold\"><wsdl-file>META-INF/wsdl/HelloService."
-"wsdl</wsdl-file></emphasis>\n"
-" <jaxrpc-mapping-file>META-INF/jaxrpc-mapping.xml</jaxrpc-"
-"mapping-file>\n"
-" <port-component>\n"
-" <port-component-name>HelloPort</port-component-"
-"name>\n"
-" <wsdl-port>impl:HelloPort</wsdl-port>\n"
-" <service-endpoint-interface>org.jboss.ws.hello.Hello</"
-"service-endpoint-interface>\n"
-" <service-impl-bean>\n"
-" <emphasis role=\"bold\"><ejb-link>HelloBean</ejb-"
-"link></emphasis>\n"
-" </service-impl-bean>\n"
-" </port-component>\n"
-" </webservice-description>\n"
-"</webservices>"
+"<![CDATA[\n"
+"java:/EventDispatcher\n"
+"]]>"
msgstr ""
#. Tag: para
-#: Web_Services.xml:116
+#: Web_Services.xml:930
#, no-c-format
+msgid "The event dispatcher interface:"
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:931
+#, no-c-format
msgid ""
-"The first difference is that the WSDL file should be in the <literal>META-"
-"INF/wsdl</literal> directory instead of the <literal>WEB-INF/wsdl</literal> "
-"directory. The second difference is that the <literal>service-impl-bean</"
-"literal> element contains an <literal>ejb-link</literal> that refers to the "
-"<literal>ejb-name</literal> of the session bean."
+"<![CDATA[\n"
+"public interface EventDispatcher\n"
+"{\n"
+"void dispatch(URI eventSourceNS, Element payload);\n"
+"}\n"
+"]]>"
msgstr ""
+#. Tag: emphasis
+#: Web_Services.xml:934
+#, no-c-format
+msgid "Example notification"
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:936
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"(1) URI eventSourceURI = new URI("http://http://www.jboss.org/sysmon/"
+"SystemInfo");\n"
+"(2) Element payload = DOMUtils.parse("SOME XML STRING");\n"
+"try\n"
+"{\n"
+"InitialContext iniCtx = getInitialContext();\n"
+"(3) EventDispatcher delegate = (EventDispatcher)\n"
+"iniCtx.lookup(EventingConstants.DISPATCHER_JNDI_NAME);\n"
+"(4) delegate.dispatch(eventSourceURI, payload);\n"
+"}\n"
+"catch (Exception e)\n"
+"{\n"
+"//\n"
+"}\n"
+"]]>"
+msgstr ""
+
#. Tag: para
-#: Web_Services.xml:119
+#: Web_Services.xml:939
#, no-c-format
+msgid "Address your event source correctly (TargetNamespace+PortTypeName)"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:942
+#, no-c-format
+msgid "Create your payload"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:945
+#, no-c-format
+msgid "Lookup dispatcher from JNDI"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:948
+#, no-c-format
+msgid "Dispatch notification."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:951
+#, no-c-format
msgid ""
-"To package and deploy the application, run the following command in the "
-"examples directory:"
+"The SubscriptionManager MBean is the actual core component that drives the "
+"JBossWS-Eventing implementation. It can be accessed through the jmx-console."
msgstr ""
#. Tag: programlisting
-#: Web_Services.xml:122
+#: Web_Services.xml:952
#, no-c-format
msgid ""
-"[examples]$ ant -Dchap=ws -Dex=2 run-example\n"
-"...\n"
-"run-example2:\n"
-" [echo] Waiting for 5 seconds for deploy...\n"
-" [java] Contacting webservice at http://localhost:8080/hello-ejb/"
-"HelloBean?wsdl\n"
-" [java] hello.hello(JBoss user)\n"
-" [java] output:Hello JBoss user!"
+"<![CDATA[\n"
+"jboss.ws.eventing:service=SubscriptionManager\n"
+"]]>"
msgstr ""
#. Tag: para
-#: Web_Services.xml:123
+#: Web_Services.xml:953
#, no-c-format
msgid ""
-"The test program run here is the same as with the servlet example, except "
-"that we use a different URL for the WSDL. JBoss composes the WSDL using the "
-"base name of the EJB JAR file and the name of the service interface. "
-"However, as with all web services in JBoss, you can use the <literal>http://"
-"localhost:8080/jbossws/services</literal> service view shown in <xref "
-"linkend=\"JAX_RPC_Service_Endpoints-The_web_services_list\"/> to verify the "
-"deployed URL of the WSDL."
+"Management operations exist to monitor and maintain active subscritions and "
+"deployed event sources. The current implementation is backed by a "
+"ThreadPoolExecutor, that asynchronously delivers messages to event sink "
+"endpoints. It can be configured through the following attributes:"
msgstr ""
+#. Tag: para
+#: Web_Services.xml:956
+#, no-c-format
+msgid "corePoolSize - average number of idle threads"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:959
+#, no-c-format
+msgid "maximumPoolSize - maximum number of threads"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:962
+#, no-c-format
+msgid ""
+"eventKeepAlive - keep alive before an undelivered event message is discarded."
+msgstr ""
+
#. Tag: title
-#: Web_Services.xml:129
+#: Web_Services.xml:968
#, no-c-format
-msgid "Web Services Clients"
+msgid "WS-Security"
msgstr ""
#. Tag: para
-#: Web_Services.xml:130
+#: Web_Services.xml:969
#, no-c-format
msgid ""
-"We will now turn our attention from providing web services to consuming them."
+"WS-Security addresses message level security. It standardizes authorization, "
+"encryption, and digital signature processing of web services. Unlike "
+"transport security models, such as SSL, WS-Security applies security "
+"directly to the elements of the web service message. This increases the "
+"flexibility of your web services, by allowing any message model to be used "
+"(point to point, multi-hop relay, etc)."
msgstr ""
+#. Tag: para
+#: Web_Services.xml:970
+#, no-c-format
+msgid ""
+"This chapter describes how to use WS-Security to sign and encrypt a simple "
+"SOAP message."
+msgstr ""
+
+#. Tag: emphasis
+#: Web_Services.xml:972
+#, no-c-format
+msgid "<emphasis>Specifications</emphasis>"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:974
+#, no-c-format
+msgid ""
+"WS-Security is defined by the combination of the following specifications:"
+msgstr ""
+
+#. Tag: ulink
+#: Web_Services.xml:978
+#, no-c-format
+msgid "SOAP Message Security 1.0"
+msgstr ""
+
+#. Tag: ulink
+#: Web_Services.xml:983
+#, no-c-format
+msgid "Username Token Profile 1.0"
+msgstr ""
+
+#. Tag: ulink
+#: Web_Services.xml:988
+#, no-c-format
+msgid "X.509 Token Profile 1.0"
+msgstr ""
+
+#. Tag: ulink
+#: Web_Services.xml:993
+#, no-c-format
+msgid "W3C XML Encryption"
+msgstr ""
+
+#. Tag: ulink
+#: Web_Services.xml:998
+#, no-c-format
+msgid "W3C XML Signature"
+msgstr ""
+
+#. Tag: ulink
+#: Web_Services.xml:1003
+#, no-c-format
+msgid "Basic Security Profile 1.0 (Still in Draft)"
+msgstr ""
+
#. Tag: title
-#: Web_Services.xml:134
+#: Web_Services.xml:1008
#, no-c-format
-msgid "A JAX-RPC client"
+msgid "Endpoint configuration"
msgstr ""
#. Tag: para
-#: Web_Services.xml:135
+#: Web_Services.xml:1009
#, no-c-format
msgid ""
-"The full JAX-RPC programming model is available to J2EE applications and "
-"clients. We won't cover the full range of client programming techniques, "
-"but we swill look briefly at the client we've used so far to test the "
-"web services we've deployed. The client, shown in the following listing, "
-"illustrates the dynamic proxy invocation mechanism."
+"JBossWS uses handlers to identify ws-security encoded requests and invoke "
+"the security components to sign and encrypt messages. In order to enable "
+"security processing, the client and server side need to include a "
+"corressponding handler configuration. The preferred way is to reference a "
+"predefined <ulink url=\"http://jbws.dyndns.org/mediawiki/index.php?title=JAX-"
+"WS_Endpoint_Configuration\">JAX-WS Endpoint Configuration</ulink> or <ulink "
+"url=\"http://jbws.dyndns.org/mediawiki/index.php?title=JAX-"
+"WS_Client_Configuration\">JAX-WS Client Configuration</ulink> respectively."
msgstr ""
+#. Tag: para
+#: Web_Services.xml:1012
+#, no-c-format
+msgid ""
+"You need to setup both the endpoint configuration and the WSSE declarations. "
+"That's two separate steps."
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:1017
+#, no-c-format
+msgid "Server side WSSE declaration (jboss-wsse-server.xml)"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:1018
+#, no-c-format
+msgid ""
+"In this example we configure both the client and the server to sign the "
+"message body. Both also require this from each other. So, if you remove "
+"either the client or the server security deployment descriptor, you will "
+"notice that the other party will throw a fault explaining that the message "
+"did not conform to the proper security requirements."
+msgstr ""
+
#. Tag: programlisting
-#: Web_Services.xml:138
+#: Web_Services.xml:1019
#, no-c-format
msgid ""
-"package org.jboss.ws.client;\n"
-"\n"
-"import org.jboss.ws.hello.Hello;\n"
-"\n"
-"import javax.xml.rpc.Service;\n"
-"import javax.xml.rpc.ServiceFactory;\n"
-"\n"
-"import javax.xml.namespace.QName;\n"
-"\n"
-"import java.net.URL;\n"
-"\n"
-"public class HelloClient\n"
-"{\n"
-" public static void main(String[] args)\n"
-" throws Exception\n"
-" {\n"
-" String urlstr = args[0];\n"
-" String argument = args[1];\n"
-"\n"
-" System.out.println(\"Contacting webservice at \" + urlstr);\n"
-"\n"
-" URL url = new URL(urlstr);\n"
-"\n"
-" QName qname = new QName(\"http://hello.ws.jboss.org/\",\n"
-" \"HelloService\");\n"
-"\n"
-" ServiceFactory factory = ServiceFactory.newInstance();\n"
-" Service service = factory.createService(url, qname);\n"
-"\n"
-" Hello hello = (Hello) service.getPort(Hello.class);\n"
-"\n"
-" System.out.println(\"hello.hello(\" + argument + \")\");\n"
-" System.out.println(\"output:\" + hello.hello(argument));\n"
-" }\n"
-"}"
+"<![CDATA[\n"
+"<jboss-ws-security xmlns="http://www.jboss.com/ws-security/"
+"config" \n"
+"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\n"
+"xsi:schemaLocation="http://www.jboss.com/ws-security/config \n"
+"http://www.jboss.com/ws-security/schema/jboss-ws-security_1_0.xsd">\n"
+"(1) <key-store-file>WEB-INF/wsse.keystore</key-store-file>\n"
+"(2) <key-store-password>jbossws</key-store-password>\n"
+"(3) <trust-store-file>WEB-INF/wsse.truststore</trust-store-"
+"file>\n"
+"(4) <trust-store-password>jbossws</trust-store-password>\n"
+"(5) <config>\n"
+"(6) <sign type="x509v3" alias="wsse"/>\n"
+"(7) <requires>\n"
+"(8) <signature/>\n"
+"</requires>\n"
+"</config>\n"
+"</jboss-ws-security>\n"
+"]]>"
msgstr ""
#. Tag: para
-#: Web_Services.xml:139
+#: Web_Services.xml:1022
#, no-c-format
msgid ""
-"This JAX-RPC client uses the <literal>Hello</literal> service endpoint "
-"interface and creates a dynamic proxy to speak to the service advertised by "
-"the WSDL at the URL that is passed in as a command line argument. For "
-"illustrative purposes, we'll show another variation of web services "
-"invocation that doesn't use the service endpoint interface. This is "
-"known as the Dynamic Invocation Interface (DII). Using DII, it is possible "
-"to refer to a specific port and operation by name. Think of it as reflection "
-"for web services. The client code is shown in the following listing."
+"This specifies that the key store we wish to use is WEB-INF/wsse.keystore, "
+"which is located in our war file."
msgstr ""
+#. Tag: para
+#: Web_Services.xml:1025
+#, no-c-format
+msgid ""
+"This specifies that the store password is "jbossws". Password can "
+"be encypted using the {EXT} and {CLASS} commands. Please see samples for "
+"their usage."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:1028
+#, no-c-format
+msgid ""
+"This specifies that the trust store we wish to use is WEB-INF/wsse."
+"truststore, which is located in our war file."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:1031
+#, no-c-format
+msgid ""
+"This specifies that the trust store password is also "jbossws". "
+"Password can be encrypted using the {EXT} and {CLASS} commands. Please see "
+"samples for their usage."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:1034
+#, no-c-format
+msgid ""
+"Here we start our root config block. The root config block is the default "
+"configuration for all services in this war file."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:1037
+#, no-c-format
+msgid ""
+"This means that the server must sign the message body of all responses. Type "
+"means that we are to use a X.509v3 certificate (a standard certificate). The "
+"alias option says that the certificate/key pair to use for signing is in the "
+"key store under the "wsse" alias"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:1040
+#, no-c-format
+msgid ""
+"Here we start our optional requires block. This block specifies all security "
+"requirements that must be met when the server receives a message."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:1043
+#, no-c-format
+msgid ""
+"This means that all web services in this war file require the message body "
+"to be signed."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:1046
+#, no-c-format
+msgid ""
+"By default an endpoint does not use the WS-Security configuration. Use the "
+"proprietary @EndpointConfig annotation to set the config name. See <ulink "
+"url=\"http://jbws.dyndns.org/mediawiki/index.php?title=JAX-"
+"WS_Endpoint_Configuration\">JAX-WS_Endpoint_Configuration</ulink> for the "
+"list of available config names."
+msgstr ""
+
#. Tag: programlisting
-#: Web_Services.xml:142
+#: Web_Services.xml:1047
#, no-c-format
msgid ""
-"package org.jboss.ws.client;\n"
-"\n"
-"import org.jboss.ws.hello.Hello;\n"
-"\n"
-"import javax.xml.rpc.Service;\n"
-"import javax.xml.rpc.ServiceFactory;\n"
-"import javax.xml.rpc.Call;\n"
-"\n"
-"import javax.xml.namespace.QName;\n"
-"\n"
-"import java.net.URL;\n"
-"\n"
-"public class HelloClientDII\n"
+"<![CDATA[\n"
+"@WebService\n"
+"@EndpointConfig(configName = "Standard WSSecurity Endpoint")\n"
+"public class HelloJavaBean\n"
"{\n"
-" public static void main(String[] args)\n"
-" throws Exception\n"
-" {\n"
-" String urlstr = args[0];\n"
-" String argument = args[1];\n"
-"\n"
-" System.out.println(\"Contacting webservice at \" + urlstr);\n"
-"\n"
-" URL url = new URL(urlstr);\n"
-"\n"
-" String ns = \"http://hello.ws.jboss.org/\";\n"
-" QName qname = new QName(ns, \"HelloService\");\n"
-" QName port = new QName(ns, \"HelloPort\");\n"
-" QName operation = new QName(ns, \"hello\");\n"
-"\n"
-" ServiceFactory factory = ServiceFactory.newInstance();\n"
-" Service service = factory.createService(url, qname);\n"
-" Call call = service.createCall(port, operation);\n"
-"\n"
-" System.out.println(\"hello.hello(\" + argument + \")\");\n"
-" System.out.println(\"output:\" + call.invoke(new Object[] "
-"{argument}));\n"
-" }\n"
-"}"
+"...\n"
+"}\n"
+"]]>"
msgstr ""
+#. Tag: title
+#: Web_Services.xml:1050
+#, no-c-format
+msgid "Client side WSSE declaration (jboss-wsse-client.xml)"
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:1051
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"<jboss-ws-security xmlns="http://www.jboss.com/ws-security/"
+"config" \n"
+"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\n"
+"xsi:schemaLocation="http://www.jboss.com/ws-security/config \n"
+"http://www.jboss.com/ws-security/schema/jboss-ws-security_1_0.xsd">\n"
+"(1) <config>\n"
+"(2) <sign type="x509v3" alias="wsse"/>\n"
+"(3) <requires>\n"
+"(4) <signature/>\n"
+"</requires>\n"
+"</config>\n"
+"</jboss-ws-security>\n"
+"]]>"
+msgstr ""
+
#. Tag: para
-#: Web_Services.xml:143
+#: Web_Services.xml:1054
#, no-c-format
msgid ""
-"The following two commands can be used to run the DII client against both "
-"the JSE and EJB web services we have created."
+"Here we start our root config block. The root config block is the default "
+"configuration for all web service clients (Call, Proxy objects)."
msgstr ""
+#. Tag: para
+#: Web_Services.xml:1057
+#, no-c-format
+msgid ""
+"This means that the client must sign the message body of all requests it "
+"sends. Type means that we are to use a X.509v3 certificate (a standard "
+"certificate). The alias option says that the certificate/key pair to use for "
+"signing is in the key store under the "wsse" alias"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:1060
+#, no-c-format
+msgid ""
+"Here we start our optional requires block. This block specifies all security "
+"requirements that must be met when the client receives a response."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:1063
+#, no-c-format
+msgid ""
+"This means that all web service clients must receive signed response "
+"messages."
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:1067
+#, no-c-format
+msgid "Client side key store configuration"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:1068
+#, no-c-format
+msgid ""
+"We did not specify a key store or trust store, because client apps instead "
+"use the wsse System properties instead. If this was a web or ejb client "
+"(meaning a webservice client in a war or ejb jar file), then we would have "
+"specified them in the client descriptor."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:1069
+#, no-c-format
+msgid "Here is an excerpt from the JBossWS samples:"
+msgstr ""
+
#. Tag: programlisting
-#: Web_Services.xml:146
-#, fuzzy, no-c-format
-msgid "[examples]$ ant -Dchap=ws -Dex=1b run-example"
-msgstr "[examples]$ ant -Dchap=chap2 -Dex=3 run-example"
+#: Web_Services.xml:1070
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"<sysproperty key="org.jboss.ws.wsse.keyStore"\n"
+"value="${tests.output.dir}/resources/jaxrpc/samples/wssecurity/wsse."
+"keystore"/>\n"
+"<sysproperty key="org.jboss.ws.wsse.trustStore" \n"
+"value="${tests.output.dir}/resources/jaxrpc/samples/wssecurity/wsse."
+"truststore"/>\n"
+"<sysproperty key="org.jboss.ws.wsse.keyStorePassword" "
+"value="jbossws"/>\n"
+"<sysproperty key="org.jboss.ws.wsse.trustStorePassword" "
+"value="jbossws"/>\n"
+"<sysproperty key="org.jboss.ws.wsse.keyStoreType" value=""
+"jks"/>\n"
+"<sysproperty key="org.jboss.ws.wsse.trustStoreType" value=""
+"jks"/>\n"
+"]]>"
+msgstr ""
+#. Tag: para
+#: Web_Services.xml:1074
+#, no-c-format
+msgid ""
+"Below you see the incomming SOAP message with the details of the security "
+"headers ommited. The idea is, that the SOAP body is still plain text, but it "
+"is signed in the security header and can therefore not manipulated in "
+"transit."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:1075
+#, no-c-format
+msgid "Incomming SOAPMessage"
+msgstr ""
+
#. Tag: programlisting
-#: Web_Services.xml:147
-#, fuzzy, no-c-format
-msgid "[examples]$ ant -Dchap=ws -Dex=2b run-example"
-msgstr "[examples]$ ant -Dchap=chap2 -Dex=3 run-example"
+#: Web_Services.xml:1076
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
+"">\n"
+"<env:Header>\n"
+"<wsse:Security env:mustUnderstand="1" ...>\n"
+"<wsu:Timestamp wsu:Id="timestamp">...</wsu:Timestamp>\n"
+"<wsse:BinarySecurityToken ...>\n"
+"...\n"
+"</wsse:BinarySecurityToken>\n"
+"<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#""
+">\n"
+"...\n"
+"</ds:Signature>\n"
+"</wsse:Security>\n"
+"</env:Header>\n"
+"<env:Body wsu:Id="element-1-1140197309843-12388840" ...>\n"
+"<ns1:echoUserType xmlns:ns1="http://org.jboss.ws/samples/"
+"wssecurity">\n"
+"<UserType_1 xmlns:xsi="http://www.w3.org/2001/XMLSchema-"
+"instance">\n"
+"<msg>Kermit</msg>\n"
+"</UserType_1>\n"
+"</ns1:echoUserType>\n"
+"</env:Body>\n"
+"</env:Envelope>\n"
+"]]>"
+msgstr ""
+#. Tag: title
+#: Web_Services.xml:1081
+#, no-c-format
+msgid "Installing the BouncyCastle JCE provider (JDK 1.4)"
+msgstr ""
+
#. Tag: para
-#: Web_Services.xml:148
+#: Web_Services.xml:1082
#, no-c-format
msgid ""
-"Note: When accessing a remote client using the JBossWS client code, is is "
-"necessary to set the <literal>java.endorsed.dirs</literal> system property "
-"to the lib/endorsed directory under your JBoss installation. For example: "
-"<literal>-Djava.endorsed.dirs=/path/to/jboss-4.0.4/lib/endorsed</literal>."
+"The information below has originaly been provided by <ulink url=\"http://www."
+"bouncycastle.org/specifications.html#install\">The Legion of the Bouncy "
+"Castle</ulink>."
msgstr ""
+#. Tag: para
+#: Web_Services.xml:1083
+#, no-c-format
+msgid ""
+"The provider can be configured as part of your environment via static "
+"registration by adding an entry to the java.security properties file (found "
+"in $JAVA_HOME/jre/lib/security/java.security, where $JAVA_HOME is the "
+"location of your JDK/JRE distribution). You'll find detailed "
+"instructions in the file but basically it comes down to adding a line:"
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:1084
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"security.provider.<n>=org.bouncycastle.jce.provider."
+"BouncyCastleProvider\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:1085
+#, no-c-format
+msgid "Where <n> is the preference you want the provider at."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:1089
+#, no-c-format
+msgid "Issues may arise if the Sun provided providers are not first."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:1092
+#, no-c-format
+msgid ""
+"Where you put the jar is mostly up to you, although with jdk1.4 the best "
+"(and in some cases only) place to have it is in $JAVA_HOME/jre/lib/ext. "
+"Under Windows there will normally be a JRE and a JDK install of Java if you "
+"think you have installed it correctly and it still doesn't work chances "
+"are you have added the provider to the installation not being used."
+msgstr ""
+
#. Tag: title
-#: Web_Services.xml:154
-#, fuzzy, no-c-format
-msgid "Service references"
-msgstr "服务架构"
+#: Web_Services.xml:1095
+#, no-c-format
+msgid "Keystore, truststore - What?"
+msgstr ""
#. Tag: para
-#: Web_Services.xml:155
+#: Web_Services.xml:1098
#, no-c-format
msgid ""
-"The JAX-RPC examples in <xref linkend=\"Web_Services_Clients-A_JAX_RPC_client"
-"\"/> all required manual configuration of the WSDL URL and knowledge of the "
-"XML nature of the web services in question. This can be a configuration "
-"nightmare, but if your code is a J2EE component there is another option. "
-"J2EE components can declare service references and look up preconfigured "
-"<literal>Service</literal> objects in JNDI without needing to hardcode any "
-"web service references in the code."
+"If you having a hard time understanding how the different trust- and "
+"keystore configurations are used for signature and encryption, then read "
+"this thread first: <ulink url=\"http://www.jboss.org/index.html?"
+"module=bb&op=viewtopic&t=94406\"></ulink>"
msgstr ""
+#. Tag: title
+#: Web_Services.xml:1105
+#, no-c-format
+msgid "WS-Transaction"
+msgstr ""
+
#. Tag: para
-#: Web_Services.xml:158
+#: Web_Services.xml:1106
#, no-c-format
msgid ""
-"To show how this works, let's first look at a session bean that needs to "
-"make a call to the hello web service:"
+"Support for the WS-Coordination, WS-AtomicTransaction and WS-"
+"BusinessActivity specifications will be provided by technology recently "
+"acquired from Arjuna Technologies Ltd. This technology will be present "
+"within the JBoss Transactions 4.2.1 release. Further information can be "
+"obtained from the <ulink url=\"http://labs.jboss.org/portal/jbosstm\">JBoss "
+"Transactions Project</ulink>"
msgstr ""
+#. Tag: title
+#: Web_Services.xml:1109
+#, no-c-format
+msgid "XML Registries"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:1110
+#, no-c-format
+msgid ""
+"J2EE 1.4 mandates support for Java API for XML Registries (JAXR). Inclusion "
+"of a XML Registry with the J2EE 1.4 certified Application Server is "
+"optional. Starting jboss-4.0.2, JBoss ships a UDDI v2.0 compliant registry, "
+"the Apache jUDDI registry. We also provide support for JAXR Capability Level "
+"0 (UDDI Registries) via integration of Apache Scout."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:1111
+#, no-c-format
+msgid ""
+"This chapter describes how to configure the jUDDI registry in JBoss and some "
+"sample code outlines for using JAXR API to publish and query the jUDDI "
+"registry."
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:1113
+#, no-c-format
+msgid "Apache jUDDI Configuration"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:1114
+#, no-c-format
+msgid ""
+"Configuration of the jUDDI registry happens via an MBean Service that is "
+"deployed in the juddi-service.sar archive in the "all" "
+"configuration. The configuration of this service can be done in the jboss-"
+"service.xml of the META-INF directory in the juddi-service.sar"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:1115
+#, no-c-format
+msgid "Let us look at the individual configuration items that can be changed."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:1116
+#, no-c-format
+msgid "DataSources configuration"
+msgstr ""
+
#. Tag: programlisting
-#: Web_Services.xml:161
+#: Web_Services.xml:1117
#, no-c-format
msgid ""
-"package org.jboss.ws.example;\n"
-"\n"
-"import javax.ejb.*;\n"
-"import javax.naming.*;\n"
-"import java.rmi.RemoteException; \n"
-" \n"
-"import javax.xml.rpc.Service;\n"
-"import javax.xml.rpc.ServiceException;\n"
-"\n"
-"import org.jboss.ws.hello.Hello;\n"
-"\n"
-"public class ExampleBean\n"
-" implements SessionBean\n"
-"{\n"
-" public String doWork()\n"
-" {\n"
-" try {\n"
-" Context ctx = new InitialContext();\n"
-"\n"
-" Service service = (Service) ctx.lookup(\"java:comp/env/services/"
-"hello\");\n"
-" Hello hello = (Hello) service.getPort(Hello.class);\n"
-" \n"
-" return hello.hello(\"example bean\");\n"
-" } catch (NamingException e) {\n"
-" throw new EJBException(e);\n"
-" \n"
-" } catch (ServiceException e) {\n"
-" throw new EJBException(e);\n"
-" \n"
-" } catch (RemoteException e) {\n"
-" throw new EJBException(e);\n"
-" }\n"
-" }\n"
-"\n"
-" public void ejbCreate() {};\n"
-" public void ejbRemove() {};\n"
-"\n"
-" public void ejbActivate() {}\n"
-" public void ejbPassivate() {}\n"
-"\n"
-" public void setSessionContext(SessionContext ctx) {}\n"
-"}"
+"<![CDATA[\n"
+"<!-- Datasource to Database-->\n"
+"<attribute name="DataSourceUrl">java:/DefaultDS</"
+"attribute>\n"
+"]]>"
msgstr ""
#. Tag: para
-#: Web_Services.xml:162
+#: Web_Services.xml:1118
#, no-c-format
msgid ""
-"<literal>ExampleBean</literal> invokes the hello web service in its "
-"<literal>doWork</literal> method. We've used the dynamic proxy "
-"invocation method here, but any of the JAX-RPC supported invocation methods "
-"would be fine. The interesting point here is that the bean has obtained the "
-"<literal>Service</literal> reference from a JNDI lookup in its ENC."
+"Database Tables (Should they be created on start, Should they be dropped on "
+"stop, Should they be dropped on start etc)"
msgstr ""
+#. Tag: programlisting
+#: Web_Services.xml:1119
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+" <!-- Should all "
+"tables be created on Start-->\n"
+" <attribute "
+"name="CreateOnStart">false</attribute>\n"
+" <!-- Should all "
+"tables be dropped on Stop-->\n"
+" <attribute "
+"name="DropOnStop">true</attribute>\n"
+" <!-- Should all "
+"tables be dropped on Start-->\n"
+" <attribute "
+"name="DropOnStart">false</attribute>\n"
+" ]]>"
+msgstr ""
+
#. Tag: para
-#: Web_Services.xml:165
-#, fuzzy, no-c-format
+#: Web_Services.xml:1120
+#, no-c-format
msgid ""
-"Web service references are declared using a <literal>service-ref</literal> "
-"element in inside an <literal>ejb-jar.xml</literal> file."
+"JAXR Connection Factory to be bound in JNDI. (Should it be bound? and under "
+"what name?)"
msgstr ""
-"你可以用 <literal>jboss-web.xml</literal> 文件里的 <literal>replication-"
-"config</literal> 元素进一步配置会话复制。下面是一个例子:"
+#. Tag: programlisting
+#: Web_Services.xml:1121
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"<!-- Should I bind a Context to which JaxrConnectionFactory bound-->\n"
+"<attribute name="ShouldBindJaxr">true</attribute>\n"
+" \n"
+"<!-- Context to which JaxrConnectionFactory to bind to. If you have "
+"remote clients, please bind it to the global namespace(default behavior). \n"
+"To just cater to clients running on the same VM as JBoss, change to java:/"
+"JAXR -->\n"
+"<attribute name="BindJaxr">JAXR</attribute>\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:1122
+#, no-c-format
+msgid "Other common configuration:"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:1123
+#, no-c-format
+msgid ""
+"Add authorized users to access the jUDDI registry. (Add a sql insert "
+"statement in a single line)"
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:1124
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"Look at the script META-INF/ddl/juddi_data.ddl for more details. Example for "
+"a user 'jboss'\n"
+" \n"
+"INSERT INTO PUBLISHER (PUBLISHER_ID,PUBLISHER_NAME,\n"
+"EMAIL_ADDRESS,IS_ENABLED,IS_ADMIN) \n"
+"VALUES ('jboss','JBoss User','jboss at xxx','"
+"true','true');\n"
+"]]>"
+msgstr ""
+
#. Tag: title
-#: Web_Services.xml:169
-#, fuzzy, no-c-format
-msgid "The service-ref content model"
-msgstr "The descriptors element content model"
+#: Web_Services.xml:1127
+#, no-c-format
+msgid "JBoss JAXR Configuration"
+msgstr ""
#. Tag: para
-#: Web_Services.xml:176
-#, fuzzy, no-c-format
+#: Web_Services.xml:1128
+#, no-c-format
msgid ""
-"The following elements are supported by the <literal>service-ref</literal>:"
-msgstr "下面的代码是用来添加一个新的 <literal>Child</literal>"
+"In this section, we will discuss the configuration needed to run the JAXR "
+"API. The JAXR configuration relies on System properties passed to the JVM. "
+"The System properties that are needed are:"
+msgstr ""
+#. Tag: programlisting
+#: Web_Services.xml:1129
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"javax.xml.registry.ConnectionFactoryClass=org.apache.ws.scout.registry."
+"ConnectionFactoryImpl \n"
+"jaxr.query.url=http://localhost:8080/juddi/inquiry \n"
+"jaxr.publish.url=http://localhost:8080/juddi/publish\n"
+"juddi.proxy.transportClass=org.jboss.jaxr.juddi.transport.SaajTransport\n"
+"]]>"
+msgstr ""
+
#. Tag: para
-#: Web_Services.xml:181
-#, fuzzy, no-c-format
+#: Web_Services.xml:1130
+#, no-c-format
msgid ""
-"<emphasis role=\"bold\">service-ref-name</emphasis>: This is the JNDI name "
-"that the service object will be bound under in the bean's ENC. It is "
-"relative to <literal>java:comp/env/</literal>."
+"Please remember to change the hostname from "localhost" to the "
+"hostname of the UDDI service/JBoss Server."
msgstr ""
-"<emphasis role=\"bold\">pattern</emphasis>:这是定义日志信息格式的样式分类"
-"符。它的缺省值是 <literal>common</literal>。"
#. Tag: para
-#: Web_Services.xml:186
+#: Web_Services.xml:1131
#, no-c-format
+msgid "You can pass the System Properties to the JVM in the following ways:"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:1134
+#, no-c-format
msgid ""
-"<emphasis role=\"bold\">service-interface</emphasis>: This is the name of "
-"JAX-RPC service interface the client will use. Normally this is "
-"<literal>javax.xml.rpc.Service</literal>, but it's possible to provide "
-"your own service class."
+"When the client code is running inside JBoss (maybe a servlet or an EJB). "
+"Then you will need to pass the System properties in the run.sh/run.bat "
+"scripts to the java process via the "-D" option."
msgstr ""
#. Tag: para
-#: Web_Services.xml:191
-#, fuzzy, no-c-format
+#: Web_Services.xml:1137
+#, no-c-format
msgid ""
-"<emphasis role=\"bold\">wsdl-file</emphasis>: This is the location of the "
-"WSDL file. The WSDL file should be under <literal>META-INF/wsdl</literal>."
+"When the client code is running in an external JVM. Then you can pass the "
+"properties either as "-D" options to the java process or "
+"explicitly set them in the client code(not recommended)."
msgstr ""
-"<emphasis role=\"bold\">prefix</emphasis>:这是每个日志文件名的前缀。它的缺省"
-"值是 <literal>access_log</literal>。"
+#. Tag: programlisting
+#: Web_Services.xml:1140
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"System.setProperty(propertyname, propertyvalue);\n"
+"]]>"
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:1143
+#, no-c-format
+msgid "JAXR Sample Code"
+msgstr ""
+
#. Tag: para
-#: Web_Services.xml:196
-#, fuzzy, no-c-format
+#: Web_Services.xml:1144
+#, no-c-format
msgid ""
-"<emphasis role=\"bold\">jaxrpc-mapping-file</emphasis>: This is the location "
-"of the JAX-RPC mapping file. It must be under the <literal>META-INF</"
-"literal> directory."
+"There are two categories of API: JAXR Publish API and JAXR Inquiry API. The "
+"important JAXR interfaces that any JAXR client code will use are the "
+"following."
msgstr ""
-"<emphasis role=\"bold\">prefix</emphasis>:这是每个日志文件名的前缀。它的缺省"
-"值是 <literal>access_log</literal>。"
#. Tag: para
-#: Web_Services.xml:201
+#: Web_Services.xml:1147
#, no-c-format
msgid ""
-"<emphasis role=\"bold\">service-qname</emphasis>: This element specifies the "
-"name of the service in the web services file. It is only mandatory if the "
-"WSDL file defines multiple services. The value must by a QName, which means "
-"it needs to be a namespace qualified value such as <literal>ns:ServiceName</"
-"literal> where <literal>ns</literal> is an XML namespace valid at the scope "
-"of the <literal>service-qname</literal> element."
+"<ulink url=\"http://java.sun.com/j2ee/1.4/docs/api/javax/xml/registry/"
+"RegistryService.html\">javax.xml.registry.RegistryService</ulink> From J2EE "
+"1.4 JavaDoc: "This is the principal interface implemented by a JAXR "
+"provider. A registry client can get this interface from a Connection to a "
+"registry. It provides the methods that are used by the client to discover "
+"various capability specific interfaces implemented by the JAXR provider."
+"""
msgstr ""
#. Tag: para
-#: Web_Services.xml:206
-#, fuzzy, no-c-format
+#: Web_Services.xml:1150
+#, no-c-format
msgid ""
-"<emphasis role=\"bold\">port-component-ref</emphasis>: This element provides "
-"the mapping between a service endpoint interface and a port in a web service."
+"<ulink url=\"http://java.sun.com/j2ee/1.4/docs/api/javax/xml/registry/"
+"BusinessLifeCycleManager.html\">javax.xml.registry.BusinessLifeCycleManager</"
+"ulink> From J2EE 1.4 JavaDoc: "The BusinessLifeCycleManager interface, "
+"which is exposed by the Registry Service, implements the life cycle "
+"management functionality of the Registry as part of a business level API. "
+"Note that there is no authentication information provided, because the "
+"Connection interface keeps that state and context on behalf of the client."
+"""
msgstr ""
-"<emphasis role=\"bold\">notification-type</emphasis>:这个元素包含用逗号隔开"
-"的通知类型串。"
#. Tag: para
-#: Web_Services.xml:211
-#, fuzzy, no-c-format
+#: Web_Services.xml:1153
+#, no-c-format
msgid ""
-"<emphasis role=\"bold\">handler</emphasis>: This allows the specification of "
-"handlers, which act like filters or interceptors on the current request or "
-"response."
+"<ulink url=\"http://java.sun.com/j2ee/1.4/docs/api/javax/xml/registry/"
+"BusinessQueryManager.html\">javax.xml.registry.BusinessQueryManager</ulink> "
+"From J2EE 1.4 JavaDoc: "The BusinessQueryManager interface, which is "
+"exposed by the Registry Service, implements the business style query "
+"interface. It is also referred to as the focused query interface.""
msgstr ""
-"<emphasis role=\"bold\">description</emphasis>:这个元素指定操作的易读的描"
-"述。"
#. Tag: para
-#: Web_Services.xml:216
+#: Web_Services.xml:1156
#, no-c-format
msgid ""
-"The following <literal>service-ref</literal> declares a reference to the "
-"hello web service for the <literal>Example</literal> session bean."
+"Let us now look at some of the common programming tasks performed while "
+"using the JAXR API:"
msgstr ""
+#. Tag: para
+#: Web_Services.xml:1157
+#, no-c-format
+msgid "Getting a JAXR Connection to the registry."
+msgstr ""
+
#. Tag: programlisting
-#: Web_Services.xml:219
+#: Web_Services.xml:1158
#, no-c-format
msgid ""
-"<session>\n"
-" <ejb-name>Example</ejb-name>\n"
-" <home>org.jboss.ws.example.ExampleHome</home>\n"
-" <remote>org.jboss.ws.example.Example</remote>\n"
-" <ejb-class>org.jboss.ws.example.ExampleBean</ejb-class>\n"
-" <session-type>Stateless</session-type>\n"
-" <transaction-type>Container</transaction-type>\n"
-" <service-ref>\n"
-" <service-ref-name>services/hello</service-ref-name>\n"
-" <service-interface>javax.xml.rpc.Service</service-"
-"interface>\n"
-" <wsdl-file>META-INF/wsdl/hello.wsdl</wsdl-file>\n"
-" <jaxrpc-mapping-file>META-INF/mapping.xml</jaxrpc-mapping-"
-"file>\n"
-" <service-qname xmlns:hello=\"http://hello.ws.jboss.org\">\n"
-" hello:HelloService\n"
-" </service-qname>\n"
-" </service-ref>\n"
-"</session>"
+"<![CDATA[\n"
+"String queryurl = System.getProperty("jaxr.query.url", ""
+"http://localhost:8080/juddi/inquiry");\n"
+"String puburl = System.getProperty("jaxr.publish.url", ""
+"http://localhost:8080/juddi/publish");\n"
+".. \n"
+"Properties props = new Properties();\n"
+"props.setProperty("javax.xml.registry.queryManagerURL", "
+"queryurl);\n"
+"props.setProperty("javax.xml.registry.lifeCycleManagerURL", "
+"puburl);\n"
+" \n"
+"String transportClass = System.getProperty("juddi.proxy."
+"transportClass", "org.jboss.jaxr.juddi.transport."
+"SaajTransport");\n"
+"System.setProperty("juddi.proxy.transportClass", transportClass);\n"
+" \n"
+"// Create the connection, passing it the configuration properties\n"
+"factory = ConnectionFactory.newInstance();\n"
+"factory.setProperties(props);\n"
+"connection = factory.createConnection();\n"
+"]]>"
msgstr ""
#. Tag: para
-#: Web_Services.xml:220
+#: Web_Services.xml:1159
#, no-c-format
+msgid "Authentication with the registry."
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:1160
+#, no-c-format
msgid ""
-"This instructs the EJB deployer to make a <literal>Service</literal> object "
-"available for the bean in JNDI under the name <literal>java:comp/env/"
-"services/hello</literal> that talks to our hello web service. The session "
-"bean can then invoke normal web services operations on the service."
+"<![CDATA[\n"
+"/**\n"
+"* Does authentication with the uddi registry\n"
+"*/\n"
+"protected void login() throws JAXRException\n"
+"{\n"
+"PasswordAuthentication passwdAuth = new PasswordAuthentication(userid, "
+"passwd.toCharArray());\n"
+"Set creds = new HashSet();\n"
+"creds.add(passwdAuth);\n"
+" \n"
+"connection.setCredentials(creds);\n"
+"}\n"
+"]]>"
msgstr ""
#. Tag: para
-#: Web_Services.xml:223
+#: Web_Services.xml:1161
#, no-c-format
+msgid "Save a Business"
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:1162
+#, no-c-format
msgid ""
-"Since most of the web services configuration options are completely "
-"standard, there's little need to go into great depths here. However, "
-"JBoss does provide several additional web services configuration options "
-"through the <literal>service-ref</literal> element in the <literal>jboss."
-"xml</literal> deployment descriptor. The content model for the service-ref "
-"element is shown in <xref linkend=\"Service_references-The_jboss."
-"xml_service_ref_content_model\"/>."
+"<![CDATA[\n"
+"/**\n"
+"* Creates a Jaxr Organization with 1 or more services\n"
+"*/\n"
+"protected Organization createOrganization(String orgname) throws "
+"JAXRException\n"
+"{\n"
+"Organization org = blm.createOrganization(getIString(orgname));\n"
+"org.setDescription(getIString("JBoss Inc"));\n"
+"Service service = blm.createService(getIString("JBOSS JAXR "
+"Service"));\n"
+"service.setDescription(getIString("Services of XML Registry"));\n"
+"//Create serviceBinding\n"
+"ServiceBinding serviceBinding = blm.createServiceBinding();\n"
+"serviceBinding.setDescription(blm.createInternationalString("Test "
+"Service Binding"));\n"
+" \n"
+"//Turn validation of URI off\n"
+"serviceBinding.setValidateURI(false);\n"
+"serviceBinding.setAccessURI("http://testjboss.org");\n"
+".. \n"
+"// Add the serviceBinding to the service\n"
+"service.addServiceBinding(serviceBinding);\n"
+" \n"
+"User user = blm.createUser();\n"
+"org.setPrimaryContact(user);\n"
+"PersonName personName = blm.createPersonName("Anil S");\n"
+"TelephoneNumber telephoneNumber = blm.createTelephoneNumber();\n"
+"telephoneNumber.setNumber("111-111-7777");\n"
+"telephoneNumber.setType(null);\n"
+"PostalAddress address = blm.createPostalAddress("111", "My "
+"Drive", "BuckHead", "GA", "USA", "
+""1111-111", "");\n"
+"Collection postalAddresses = new ArrayList();\n"
+"postalAddresses.add(address);\n"
+"Collection emailAddresses = new ArrayList();\n"
+"EmailAddress emailAddress = blm.createEmailAddress("anil at apache."
+"org");\n"
+"emailAddresses.add(emailAddress);\n"
+" \n"
+"Collection numbers = new ArrayList();\n"
+"numbers.add(telephoneNumber);\n"
+"user.setPersonName(personName);\n"
+"user.setPostalAddresses(postalAddresses);\n"
+"user.setEmailAddresses(emailAddresses);\n"
+"user.setTelephoneNumbers(numbers);\n"
+" \n"
+"ClassificationScheme cScheme = getClassificationScheme("ntis-gov:"
+"naics", "");\n"
+"Key cKey = blm.createKey("uuid:C0B9FE13-324F-413D-5A5B-"
+"2004DB8E5CC2");\n"
+"cScheme.setKey(cKey);\n"
+"Classification classification = blm.createClassification(cScheme, ""
+"Computer Systems Design and Related Services", "5415");\n"
+"org.addClassification(classification);\n"
+"ClassificationScheme cScheme1 = getClassificationScheme("D-U-N-S", "
+""");\n"
+"Key cKey1 = blm.createKey("uuid:3367C81E-FF1F-4D5A-B202-"
+"3EB13AD02423");\n"
+"cScheme1.setKey(cKey1);\n"
+"ExternalIdentifier ei = blm.createExternalIdentifier(cScheme1, "D-U-N-S "
+"number", "08-146-6849");\n"
+"org.addExternalIdentifier(ei);\n"
+"org.addService(service);\n"
+"return org;\n"
+"}\n"
+"]]>"
msgstr ""
+#. Tag: para
+#: Web_Services.xml:1163
+#, no-c-format
+msgid "Query a Business"
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:1164
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"/**\n"
+"* Locale aware Search a business in the registry\n"
+"*/\n"
+"public void searchBusiness(String bizname) throws JAXRException\n"
+"{\n"
+"try\n"
+"{\n"
+"// Get registry service and business query manager\n"
+"this.getJAXREssentials();\n"
+" \n"
+"// Define find qualifiers and name patterns\n"
+"Collection findQualifiers = new ArrayList();\n"
+"findQualifiers.add(FindQualifier.SORT_BY_NAME_ASC);\n"
+"Collection namePatterns = new ArrayList();\n"
+"String pattern = "%" + bizname + "%";\n"
+"LocalizedString ls = blm.createLocalizedString(Locale.getDefault(), "
+"pattern);\n"
+"namePatterns.add(ls);\n"
+" \n"
+"// Find based upon qualifier type and values\n"
+"BulkResponse response = bqm.findOrganizations(findQualifiers, namePatterns, "
+"null, null, null, null);\n"
+" \n"
+"// check how many organisation we have matched\n"
+"Collection orgs = response.getCollection();\n"
+"if (orgs == null)\n"
+"{\n"
+"log.debug(" -- Matched 0 orgs");\n"
+" \n"
+"}\n"
+"else\n"
+"{\n"
+"log.debug(" -- Matched " + orgs.size() + " organizations -- "
+"");\n"
+" \n"
+"// then step through them\n"
+"for (Iterator orgIter = orgs.iterator(); orgIter.hasNext();)\n"
+"{\n"
+"Organization org = (Organization)orgIter.next();\n"
+"log.debug("Org name: " + getName(org));\n"
+"log.debug("Org description: " + getDescription(org));\n"
+"log.debug("Org key id: " + getKey(org));\n"
+"checkUser(org);\n"
+"checkServices(org);\n"
+"}\n"
+"}\n"
+"}\n"
+"finally\n"
+"{\n"
+"connection.close();\n"
+"}\n"
+"}\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:1165
+#, no-c-format
+msgid ""
+"For more examples of code using the JAXR API, please refer to the resources "
+"in the Resources Section."
+msgstr ""
+
#. Tag: title
-#: Web_Services.xml:227
-#, fuzzy, no-c-format
-msgid "The jboss.xml service-ref content model"
-msgstr "The descriptors element content model"
+#: Web_Services.xml:1168
+#, no-c-format
+msgid "Troubleshooting"
+msgstr ""
#. Tag: para
-#: Web_Services.xml:234
-#, fuzzy, no-c-format
-msgid "The configurable elements are:"
-msgstr "子元素是:"
+#: Web_Services.xml:1171
+#, no-c-format
+msgid ""
+"<emphasis role=\"bold\">I cannot connect to the registry from JAXR.</"
+"emphasis> Please check the inquiry and publish url passed to the JAXR "
+"ConnectionFactory."
+msgstr ""
#. Tag: para
-#: Web_Services.xml:239
-#, fuzzy, no-c-format
+#: Web_Services.xml:1174
+#, no-c-format
msgid ""
-"<emphasis role=\"bold\">service-ref-name</emphasis>: This element should "
-"match the <literal>service-ref-name</literal> in the <literal>ejb-jar.xml</"
-"literal> file that is being configured."
+"<emphasis role=\"bold\">I cannot connect to the jUDDI registry.</emphasis> "
+"Please check the jUDDI configuration and see if there are any errors in the "
+"server.log. And also remember that the jUDDI registry is available only in "
+"the "all" configuration."
msgstr ""
-"<emphasis role=\"bold\">LenientEjbLink</emphasis>:这个标记指出在尝试 "
-"<literal>jboss-web.xml</literal> 里的 <literal>jndi-name</literal> 时应该忽"
-"略 <literal>ejb-link</literal> 错误。这个标记的缺省值是 ture。"
#. Tag: para
-#: Web_Services.xml:244
+#: Web_Services.xml:1177
#, no-c-format
msgid ""
-"<emphasis role=\"bold\">port-component-ref</emphasis>: The <literal>port-"
-"component-ref</literal> element provides additional information for a "
-"specific port. This includes properties that should be associated with the "
-"JAX-RPC stub for the port."
+"<emphasis role=\"bold\">I cannot authenticate to the jUDDI registry.</"
+"emphasis>Have you added an authorized user to the jUDDI database, as "
+"described earlier in the chapter?"
msgstr ""
#. Tag: para
-#: Web_Services.xml:249
+#: Web_Services.xml:1180
#, no-c-format
msgid ""
-"<emphasis role=\"bold\">wsdl-override</emphasis>: This provides an alternate "
-"location for the WSDL file. The value can be any valid URL. This can be used "
-"in co-ordination with the <literal>wsdl-publish-location</literal> to get "
-"the final WSDL file for a locally published web service. It could also be "
-"the URL of a remotely published WSDL that you don't want duplicated in "
-"the deployment file."
+"<emphasis role=\"bold\">I would like to view the SOAP messages in transit "
+"between the client and the UDDI Registry.</emphasis> Please use the tcpmon "
+"tool to view the messages in transit. <ulink url=\"http://tcpmon.dev.java."
+"net/\">TCPMon</ulink>"
msgstr ""
+#. Tag: title
+#: Web_Services.xml:1185
+#, no-c-format
+msgid "Resources"
+msgstr ""
+
+#. Tag: ulink
+#: Web_Services.xml:1189
+#, no-c-format
+msgid "JAXR Tutorial and Code Camps"
+msgstr ""
+
+#. Tag: ulink
+#: Web_Services.xml:1194
+#, no-c-format
+msgid "J2EE 1.4 Tutorial"
+msgstr ""
+
+#. Tag: ulink
+#: Web_Services.xml:1199
+#, no-c-format
+msgid "J2EE Web Services by Richard Monson-Haefel"
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:1206
+#, no-c-format
+msgid "WS-Policy"
+msgstr ""
+
#. Tag: para
-#: Web_Services.xml:254
-#, fuzzy, no-c-format
+#: Web_Services.xml:1207
+#, no-c-format
+msgid "Since 2.1"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:1208
+#, no-c-format
msgid ""
-"<emphasis role=\"bold\">call-property</emphasis>: This sets properties on "
-"the JAX-RPC stub."
+"The Web Services Policy Framework (WS-Policy) provides a general purpose "
+"model and corresponding syntax to describe the policies of a Web Service."
msgstr ""
-"<emphasis role=\"bold\">parameter</emphasis>:这个元素描述了操作的签名。"
#. Tag: para
-#: Web_Services.xml:259
+#: Web_Services.xml:1209
#, no-c-format
msgid ""
-"Since the WSDL file generated by wscompile doesn't contain the SOAP "
-"address of our web service, we'll use the WSDL override feature to "
-"dynamically download the correct WSDL file from the server. While this might "
-"not be the best technique to use in a production application, it does "
-"illustrate the WSDL override functionality very well. The following "
-"<literal>jboss.xml</literal> file links the published URL for the "
-"<literal>hello-servlet</literal> version of the hello web service.."
+"WS-Policy defines a base set of constructs that can be used and extended by "
+"other Web services specifications to describe a broad range of service "
+"requirements and capabilities."
msgstr ""
+#. Tag: para
+#: Web_Services.xml:1210
+#, no-c-format
+msgid ""
+"Current JBoss implementation can instrument a webservice with policies "
+"attached at endpoint, port or port-type scope level only. There are two "
+"different methods to attach policies: providing a wsdl decorated with "
+"policies and policy attachments as defined by specifications, or using JBoss "
+"proprietary annotations. The first way has the advantage of being standard, "
+"while the second one is much more simple to implement. Of course the wsdl "
+"generated by these annotations conforms to standard defined in "
+"specifications and can be used with any ws-policy compliant client."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:1211
+#, no-c-format
+msgid ""
+"Please note that ws-policy specifications only define policy requirements "
+"and their attachment method to wsdl through specific extensions. It is out "
+"of the scope of ws-policy specifications and thus implementation to define "
+"and use the content of assertions. The way these assertions (called domain "
+"assertions or domain policies) have to be deployed and used is left to other "
+"specification like WS-Security-Policy or more generally to domain specific "
+"implementation."
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:1213
+#, no-c-format
+msgid "Specification"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:1214
+#, no-c-format
+msgid ""
+"WS-Policy is defined by the combination of the following specifications:"
+msgstr ""
+
#. Tag: programlisting
-#: Web_Services.xml:262
+#: Web_Services.xml:1215
#, no-c-format
msgid ""
-"<!DOCTYPE jboss PUBLIC\n"
-" \"-//JBoss//DTD JBOSS 4.0//EN\"\n"
-" \"http://www.jboss.org/j2ee/dtd/jboss_4_0.dtd\">\n"
-"<jboss>\n"
-" <enterprise-beans>\n"
-" <session>\n"
-" <ejb-name>Example</ejb-name>\n"
-" <service-ref>\n"
-" <service-ref-name>services/hello</service-ref-"
-"name>\n"
-" <wsdl-override><emphasis role=\"bold\">http://"
-"localhost:8080/hello-servlet/Hello?wsdl</emphasis></wsdl-override>\n"
-" </service-ref>\n"
-" </session>\n"
-" </enterprise-beans>\n"
-"</jboss>"
+"<![CDATA[\n"
+"* <ulink url=\"http://www.w3.org/Submission/WS-Policy/\"> WS-Policy "
+"specification</ulink>\n"
+"* <ulink url=\"http://www.w3.org/Submission/WS-PolicyAttachment/\"> WS-"
+"Policy-Attachment specification</ulink>\n"
+" ]]>"
msgstr ""
+#. Tag: title
+#: Web_Services.xml:1218
+#, no-c-format
+msgid "Using policies in a user provided wsdl"
+msgstr ""
+
#. Tag: para
-#: Web_Services.xml:263
+#: Web_Services.xml:1219
#, no-c-format
-msgid "This example can be run as shown below:"
+msgid ""
+"To attach policies in this manner, the only thing you have to do in a "
+"webservice class is to provide a custom wsdl. This will cause JBossws to "
+"skip wsdl generation at deploy time, since the wsdl file you provided will "
+"be published. Please refer to specification (WS-Policy-Attachment) to learn "
+"how to modify wsdl to attach a policy."
msgstr ""
+#. Tag: para
+#: Web_Services.xml:1220
+#, no-c-format
+msgid ""
+"Here you find an example of a webservice class and provided wsdl with a "
+"policy containing a domain assertion for JBoss wssecurity."
+msgstr ""
+
#. Tag: programlisting
-#: Web_Services.xml:266
+#: Web_Services.xml:1221
#, no-c-format
msgid ""
-"[examples]$ ant -Dchap=ws -Dex=3 run-example\n"
+"<![CDATA[\n"
+"@WebService(name = "Hello", \n"
+"targetNamespace = "http://org.jboss.ws/samples/wssecuritypolicy",\n"
+"wsdlLocation="WEB-INF/wsdl/HelloService.wsdl")\n"
+"@SOAPBinding(style = SOAPBinding.Style.RPC)\n"
+"public class HelloJavaBean\n"
+"{\n"
+"private Logger log = Logger.getLogger(HelloJavaBean.class);\n"
+"..\n"
+"@WebMethod\n"
+"public UserType echoUserType(@WebParam(name = "user") UserType "
+"in0)\n"
+"{\n"
+"log.info(in0);\n"
+"return in0;\n"
+"}\n"
+"}\n"
+"<?xml version="1.0" encoding="UTF-8"?>\n"
+"<definitions name='HelloService' targetNamespace='http://"
+"org.jboss.ws/samples/wssecuritypolicy' xmlns='http://schemas."
+"xmlsoap.org/wsdl/' xmlns:ns1='http://org.jboss.ws/samples/"
+"wssecurity' xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/"
+"' xmlns:tns='http://org.jboss.ws/samples/wssecuritypolicy' "
+"xmlns:wsp='http://schemas.xmlsoap.org/ws/2004/09/policy' xmlns:"
+"xsd='http://www.w3.org/2001/XMLSchema'>\n"
+"<types>\n"
+"<xs:schema targetNamespace='http://org.jboss.ws/samples/"
+"wssecurity' version='1.0' xmlns:xs='http://www.w3."
+"org/2001/XMLSchema'>\n"
+"<xs:complexType name='UserType'>\n"
+"<xs:sequence>\n"
+"<xs:element minOccurs='0' name='msg' type='xs:"
+"string'/>\n"
+"</xs:sequence>\n"
+"</xs:complexType>\n"
+"</xs:schema>\n"
+"</types>\n"
+"<wsp:Policy wsu:Id='X509EndpointPolicy' xmlns:wsu='http://"
+"docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0."
+"xsd'>\n"
+"<wsp:All>\n"
+"<sp:jboss-ws-security xmlns:sp='http://www.jboss.com/ws-security/"
+"schema/jboss-ws-security_1_0.xsd'>\n"
+"<sp:key-store-file>WEB-INF/wsse.keystore</sp:key-store-file>\n"
+"<sp:key-store-password>jbossws</sp:key-store-password>\n"
+"<sp:trust-store-file>WEB-INF/wsse.truststore</sp:trust-store-"
+"file>\n"
+"<sp:trust-store-password>jbossws</sp:trust-store-password>\n"
+"<sp:config>\n"
+"<sp:encrypt alias='wsse' type='x509v3'/>\n"
+"<sp:requires>\n"
+"<sp:encryption/>\n"
+"</sp:requires>\n"
+"</sp:config>\n"
+"</sp:jboss-ws-security>\n"
+"</wsp:All>\n"
+"</wsp:Policy>\n"
+"<message name='Hello_echoUserType'>\n"
+"<part name='user' type='ns1:UserType'/>\n"
+"</message>\n"
+"<message name='Hello_echoUserTypeResponse'>\n"
+"<part name='return' type='ns1:UserType'/>\n"
+"</message>\n"
+"<portType name='Hello'>\n"
+"<operation name='echoUserType' parameterOrder='user'"
+">\n"
+"<input message='tns:Hello_echoUserType'/>\n"
+"<output message='tns:Hello_echoUserTypeResponse'/>\n"
+"</operation>\n"
+"</portType>\n"
+"<binding name='HelloBinding' type='tns:Hello'>\n"
+"<wsp:PolicyReference URI='#X509EndpointPolicy'/>\n"
+"<soap:binding style='rpc' transport='http://schemas."
+"xmlsoap.org/soap/http'/>\n"
+"<operation name='echoUserType'>\n"
+"<soap:operation soapAction=''/>\n"
+"<input>\n"
+"<soap:body namespace='http://org.jboss.ws/samples/"
+"wssecuritypolicy' use='literal'/>\n"
+"</input>\n"
+"<output>\n"
+"<soap:body namespace='http://org.jboss.ws/samples/"
+"wssecuritypolicy' use='literal'/>\n"
+"</output>\n"
+"</operation>\n"
+"</binding>\n"
+"<service name='HelloService'>\n"
+"<port binding='tns:HelloBinding' name='HelloPort'"
+">\n"
+"<soap:address location='REPLACE_WITH_ACTUAL_URL'/>\n"
+"</port>\n"
+"</service>\n"
+"</definitions>\n"
+"]]>"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:1223
+#, no-c-format
+msgid ""
+"Please note in the wsdl file the wsp:Policy element and the wsp:"
+"PolicyReference in 'HelloBinding' binding Element."
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:1226
+#, no-c-format
+msgid "Using policies with JBoss annotations"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:1227
+#, no-c-format
+msgid ""
+"Using JBoss proprietary annotation you only have to provide the policy xml, "
+"leaving wsdl generation to the JBossWS deployer."
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:1228
+#, no-c-format
+msgid ""
+"There are two annotations to use, the first one (@PolicyAttachment) "
+"containing an array of the second one (@Policy): this lets you have many "
+"policies attached to a class or method. In future domain policy "
+"implementations might ship domain annotations extending the @Policy "
+"annotation to provide needed metadata directly as annotation parameters. The "
+"current @Policy annotation takes a reference to a xml file containing a "
+"generic policy description written respecting ws-policy specification rules."
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:1229
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"/**\n"
+" \n"
+"@Target(ElementType.TYPE) \n"
+"@Retention(RetentionPolicy.RUNTIME)\n"
+"public @interface PolicyAttachment {\n"
+"Policy[] value();\n"
+"}\n"
"...\n"
-"run-example3:\n"
-" [echo] Waiting for 5 seconds for deploy...\n"
-" [copy] Copying 1 file to /tmp/jboss-4.0.4/server/production/deploy\n"
-" [echo] Waiting for 5 seconds for deploy...\n"
-" [java] output:Hello example bean!"
+"@Retention(RetentionPolicy.RUNTIME)\n"
+"public @interface Policy {\n"
+" \n"
+"public String policyFileLocation();\n"
+" \n"
+"public PolicyScopeLevel scope();\n"
+"}\n"
+"]]>"
msgstr ""
#. Tag: para
-#: Web_Services.xml:267
+#: Web_Services.xml:1230
#, no-c-format
msgid ""
-"The <literal>service-ref</literal> element is not limited to the "
-"<literal>ejb-jar.xml</literal> file. It's available to any J2EE "
-"component. A service reference can be placed in the <literal>web.xml</"
-"literal> file for use by web tier components or in the <literal>application-"
-"client.xml</literal> file for use by J2EE client applications."
+"And here you have the previous section example re-implemented using "
+"annotations and xml policy file:"
msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:1231
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"@WebService(name = "Hello", targetNamespace = "http://org."
+"jboss.ws/samples/wssecurityAnnotatedpolicy")\n"
+"@PolicyAttachment({@Policy( policyFileLocation="WEB-INF/Policy."
+"xml", scope = PolicyScopeLevel.WSDL_PORT ) })\n"
+"@SOAPBinding(style = SOAPBinding.Style.RPC)\n"
+"public class HelloJavaBean\n"
+"{\n"
+"private Logger log = Logger.getLogger(HelloJavaBean.class);\n"
+" \n"
+"@WebMethod\n"
+"public UserType echoUserType(@WebParam(name = "user") UserType "
+"in0)\n"
+"{\n"
+"log.info(in0);\n"
+"return in0;\n"
+"}\n"
+"}\n"
+"<?xml version="1.0" encoding="UTF-8"?>\n"
+"...\n"
+"<wsp:Policy wsu:Id="X509EndpointPolicy" xmlns:wsp="http://"
+"schemas.xmlsoap.org/ws/2004/09/policy" \n"
+"xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-"
+"wssecurity-utility-1.0.xsd">\n"
+"<wsp:ExactlyOne>\n"
+"<wsp:All>\n"
+"<sp:jboss-ws-security xmlns:sp="http://www.jboss.com/ws-security/"
+"schema/jboss-ws-security_1_0.xsd">\n"
+"<sp:key-store-file>WEB-INF/wsse.keystore</sp:key-store-file>\n"
+"<sp:key-store-password>jbossws</sp:key-store-password>\n"
+"<sp:trust-store-file>WEB-INF/wsse.truststore</sp:trust-store-"
+"file>\n"
+"<sp:trust-store-password>jbossws</sp:trust-store-password>\n"
+"<sp:config>\n"
+"<sp:encrypt type="x509v3" alias="wsse"/>\n"
+"<sp:requires>\n"
+"<sp:encryption/>\n"
+"</sp:requires>\n"
+"</sp:config>\n"
+"</sp:jboss-ws-security>\n"
+"</wsp:All>\n"
+"</wsp:ExactlyOne> \n"
+"</wsp:Policy>\n"
+"]]>"
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:1236
+#, no-c-format
+msgid "JBossWS Extensions"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:1237
+#, no-c-format
+msgid "This section describes propriatary JBoss extensions to JAX-WS."
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:1239
+#, no-c-format
+msgid "Proprietary Annotations"
+msgstr ""
+
+#. Tag: para
+#: Web_Services.xml:1240
+#, no-c-format
+msgid ""
+"For the set of standard annotations, please have a look at <ulink url="
+"\"http://jbws.dyndns.org/mediawiki/index.php?title=JAX-WS_Annotations\">JAX-"
+"WS Annotations</ulink>"
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:1242
+#, no-c-format
+msgid "EndpointConfig"
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:1243
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"/**\n"
+"* Defines an endpoint or client configuration. \n"
+"* This annotation is valid on an endpoint implementaion bean or a SEI.\n"
+"* \n"
+"* @author Heiko.Braun at jboss.org\n"
+"* @since 16.01.2007\n"
+"*/\n"
+"@Retention(value = RetentionPolicy.RUNTIME)\n"
+"@Target(value = { ElementType.TYPE })\n"
+"public @interface EndpointConfig {\n"
+"... \n"
+"/**\n"
+"* The optional config-name element gives the configuration name that must be "
+"present in\n"
+"* the configuration given by element config-file.\n"
+"* \n"
+"* Server side default: Standard Endpoint\n"
+"* Client side default: Standard Client\n"
+"*/\n"
+"String configName() default "";\n"
+"...\n"
+"/**\n"
+"* The optional config-file element is a URL or resource name for the "
+"configuration.\n"
+"*\n"
+"* Server side default: standard-jaxws-endpoint-config.xml\n"
+"* Client side default: standard-jaxws-client-config.xml\n"
+"*/\n"
+"String configFile() default "";\n"
+"}\n"
+"]]>"
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:1246
+#, no-c-format
+msgid "WebContext"
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:1247
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"/**\n"
+"* Provides web context specific meta data to EJB based web service "
+"endpoints.\n"
+"*\n"
+"* @author thomas.diesler at jboss.org\n"
+"* @since 26-Apr-2005\n"
+"*/\n"
+"@Retention(value = RetentionPolicy.RUNTIME)\n"
+"@Target(value = { ElementType.TYPE })\n"
+"public @interface WebContext {\n"
+"... \n"
+"/** \n"
+"* The contextRoot element specifies the context root that the web service "
+"endpoint is deployed to.\n"
+"* If it is not specified it will be derived from the deployment short name.\n"
+"* \n"
+"* Applies to server side port components only. \n"
+"*/\n"
+"String contextRoot() default "";\n"
+"...\n"
+"/** \n"
+"* The virtual hosts that the web service endpoint is deployed to.\n"
+"* \n"
+"* Applies to server side port components only.\n"
+"*/\n"
+"String[] virtualHosts() default {};\n"
+" \n"
+"/** \n"
+"* Relative path that is appended to the contextRoot to form fully qualified\n"
+"* endpoint address for the web service endpoint.\n"
+"* \n"
+"* Applies to server side port components only. \n"
+"*/\n"
+"String urlPattern() default "";\n"
+" \n"
+"/**\n"
+"* The authMethod is used to configure the authentication mechanism for the "
+"web service. \n"
+"* As a prerequisite to gaining access to any web service which are protected "
+"by an authorization\n"
+"* constraint, a user must have authenticated using the configured "
+"mechanism.\n"
+"*\n"
+"* Legal values for this element are "BASIC", or "CLIENT-"
+"CERT".\n"
+"*/\n"
+"String authMethod() default "";\n"
+" \n"
+"/**\n"
+"* The transportGuarantee specifies that the communication\n"
+"* between client and server should be NONE, INTEGRAL, or\n"
+"* CONFIDENTIAL. NONE means that the application does not require any\n"
+"* transport guarantees. A value of INTEGRAL means that the application\n"
+"* requires that the data sent between the client and server be sent in\n"
+"* such a way that it can't be changed in transit. CONFIDENTIAL means\n"
+"* that the application requires that the data be transmitted in a\n"
+"* fashion that prevents other entities from observing the contents of\n"
+"* the transmission. In most cases, the presence of the INTEGRAL or\n"
+"* CONFIDENTIAL flag will indicate that the use of SSL is required.\n"
+"*/\n"
+"String transportGuarantee() default "";\n"
+" \n"
+"/**\n"
+"* A secure endpoint does not by default publish it's wsdl on an "
+"unsecure transport.\n"
+"* You can override this behaviour by explicitly setting the secureWSDLAccess "
+"flag to false.\n"
+"* \n"
+"* Protect access to WSDL. See http://jira.jboss.org/jira/browse/JBWS-723 \n"
+"*/\n"
+"boolean secureWSDLAccess() default true;\n"
+"}\n"
+"]]>"
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:1250
+#, no-c-format
+msgid "SecurityDomain"
+msgstr ""
+
+#. Tag: programlisting
+#: Web_Services.xml:1251
+#, no-c-format
+msgid ""
+"<![CDATA[\n"
+"/**\n"
+"* Annotation for specifying the JBoss security domain for an EJB\n"
+"* \n"
+"* @author <a href="mailto:bill at jboss.org">Bill Burke</"
+"a>\n"
+"**/\n"
+"@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME)\n"
+"public @interface SecurityDomain\n"
+"{\n"
+"/**\n"
+"* The required name for the security domain.\n"
+"* \n"
+"* Do not use the JNDI name\n"
+"* \n"
+"* Good: "MyDomain"\n"
+"* Bad: "java:/jaas/MyDomain"\n"
+"*/\n"
+"String value();\n"
+" \n"
+"/**\n"
+"* The name for the unauthenticated pricipal\n"
+"*/\n"
+"String unauthenticatedPrincipal() default "";\n"
+"}\n"
+"]]>"
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:1256
+#, fuzzy, no-c-format
+msgid "Web Services Appendix"
+msgstr "代理服务"
+
+#. Tag: ulink
+#: Web_Services.xml:1258
+#, no-c-format
+msgid "JAX-WS Endpoint Configuration"
+msgstr ""
+
+#. Tag: ulink
+#: Web_Services.xml:1261
+#, no-c-format
+msgid "JAX-WS Client Configuration"
+msgstr ""
+
+#. Tag: ulink
+#: Web_Services.xml:1264
+#, no-c-format
+msgid "JAX-WS Annotations"
+msgstr ""
+
+#. Tag: ulink
+#: Web_Services.xml:1267
+#, no-c-format
+msgid "Common features and properties"
+msgstr ""
+
+#. Tag: title
+#: Web_Services.xml:1273
+#, fuzzy, no-c-format
+msgid "References"
+msgstr "服务架构"
+
+#. Tag: ulink
+#: Web_Services.xml:1276
+#, no-c-format
+msgid "JSR-224 - Java API for XML-Based Web Services (JAX-WS) 2.0"
+msgstr ""
+
+#. Tag: ulink
+#: Web_Services.xml:1279
+#, no-c-format
+msgid "JSR 222 - Java Architecture for XML Binding (JAXB) 2.0"
+msgstr ""
+
+#. Tag: ulink
+#: Web_Services.xml:1282
+#, no-c-format
+msgid "JSR-261 - Java API for XML Web Services Addressing"
+msgstr ""
+
+#. Tag: ulink
+#: Web_Services.xml:1285
+#, no-c-format
+msgid "SOAP-1.2 - Messaging Framework"
+msgstr ""
+
+#. Tag: ulink
+#: Web_Services.xml:1288
+#, no-c-format
+msgid "JSR-250 - Common Annotations for the Java Platform"
+msgstr ""
+
+#. Tag: ulink
+#: Web_Services.xml:1291
+#, no-c-format
+msgid "JSR 181 - Web Services Metadata for the Java Platform"
+msgstr ""
+
+#, fuzzy
+#~ msgid ""
+#~ "package org.jboss.ws.hello;\n"
+#~ "\n"
+#~ "import java.rmi.Remote;\n"
+#~ "import java.rmi.RemoteException;\n"
+#~ "\n"
+#~ "public interface Hello\n"
+#~ " extends Remote\n"
+#~ "{\n"
+#~ " public String hello(String name)\n"
+#~ " throws RemoteException;\n"
+#~ "}"
+#~ msgstr ""
+#~ "package org.jboss.chap2.ex2;\n"
+#~ "\n"
+#~ "// The JNDIMap MBean interface\n"
+#~ "import javax.naming.NamingException;\n"
+#~ "\n"
+#~ "public interface JNDIMapMBean extends org.jboss.system.ServiceMBean\n"
+#~ "{\n"
+#~ " public String getJndiName();\n"
+#~ " public void setJndiName(String jndiName) throws NamingException;\n"
+#~ "}"
+
+#, fuzzy
+#~ msgid "[examples]$ ant -Dchap=ws -Dex=1b run-example"
+#~ msgstr "[examples]$ ant -Dchap=chap2 -Dex=3 run-example"
+
+#, fuzzy
+#~ msgid "[examples]$ ant -Dchap=ws -Dex=2b run-example"
+#~ msgstr "[examples]$ ant -Dchap=chap2 -Dex=3 run-example"
+
+#, fuzzy
+#~ msgid ""
+#~ "Web service references are declared using a <literal>service-ref</"
+#~ "literal> element in inside an <literal>ejb-jar.xml</literal> file."
+#~ msgstr ""
+#~ "你可以用 <literal>jboss-web.xml</literal> 文件里的 <literal>replication-"
+#~ "config</literal> 元素进一步配置会话复制。下面是一个例子:"
+
+#, fuzzy
+#~ msgid "The service-ref content model"
+#~ msgstr "The descriptors element content model"
+
+#, fuzzy
+#~ msgid ""
+#~ "The following elements are supported by the <literal>service-ref</"
+#~ "literal>:"
+#~ msgstr "下面的代码是用来添加一个新的 <literal>Child</literal>"
+
+#, fuzzy
+#~ msgid ""
+#~ "<emphasis role=\"bold\">service-ref-name</emphasis>: This is the JNDI "
+#~ "name that the service object will be bound under in the bean's ENC. "
+#~ "It is relative to <literal>java:comp/env/</literal>."
+#~ msgstr ""
+#~ "<emphasis role=\"bold\">pattern</emphasis>:这是定义日志信息格式的样式分类"
+#~ "符。它的缺省值是 <literal>common</literal>。"
+
+#, fuzzy
+#~ msgid ""
+#~ "<emphasis role=\"bold\">wsdl-file</emphasis>: This is the location of the "
+#~ "WSDL file. The WSDL file should be under <literal>META-INF/wsdl</literal>."
+#~ msgstr ""
+#~ "<emphasis role=\"bold\">prefix</emphasis>:这是每个日志文件名的前缀。它的"
+#~ "缺省值是 <literal>access_log</literal>。"
+
+#, fuzzy
+#~ msgid ""
+#~ "<emphasis role=\"bold\">jaxrpc-mapping-file</emphasis>: This is the "
+#~ "location of the JAX-RPC mapping file. It must be under the <literal>META-"
+#~ "INF</literal> directory."
+#~ msgstr ""
+#~ "<emphasis role=\"bold\">prefix</emphasis>:这是每个日志文件名的前缀。它的"
+#~ "缺省值是 <literal>access_log</literal>。"
+
+#, fuzzy
+#~ msgid ""
+#~ "<emphasis role=\"bold\">port-component-ref</emphasis>: This element "
+#~ "provides the mapping between a service endpoint interface and a port in a "
+#~ "web service."
+#~ msgstr ""
+#~ "<emphasis role=\"bold\">notification-type</emphasis>:这个元素包含用逗号隔"
+#~ "开的通知类型串。"
+
+#, fuzzy
+#~ msgid ""
+#~ "<emphasis role=\"bold\">handler</emphasis>: This allows the specification "
+#~ "of handlers, which act like filters or interceptors on the current "
+#~ "request or response."
+#~ msgstr ""
+#~ "<emphasis role=\"bold\">description</emphasis>:这个元素指定操作的易读的描"
+#~ "述。"
+
+#, fuzzy
+#~ msgid "The jboss.xml service-ref content model"
+#~ msgstr "The descriptors element content model"
+
+#, fuzzy
+#~ msgid ""
+#~ "<emphasis role=\"bold\">service-ref-name</emphasis>: This element should "
+#~ "match the <literal>service-ref-name</literal> in the <literal>ejb-jar."
+#~ "xml</literal> file that is being configured."
+#~ msgstr ""
+#~ "<emphasis role=\"bold\">LenientEjbLink</emphasis>:这个标记指出在尝试 "
+#~ "<literal>jboss-web.xml</literal> 里的 <literal>jndi-name</literal> 时应该"
+#~ "忽略 <literal>ejb-link</literal> 错误。这个标记的缺省值是 ture。"
+
+#, fuzzy
+#~ msgid ""
+#~ "<emphasis role=\"bold\">call-property</emphasis>: This sets properties on "
+#~ "the JAX-RPC stub."
+#~ msgstr ""
+#~ "<emphasis role=\"bold\">parameter</emphasis>:这个元素描述了操作的签名。"
More information about the jboss-cvs-commits
mailing list