???? Apache Tuscany Java SCA FAQ ???????????????
Panel |
---|
borderColor | #C3CDA1 |
---|
bgColor | #ECF4D1 |
---|
titleBGColor | #C3CDA1 |
---|
title | Apache Tuscany |
---|
|
\\
{panel:title=Apache Tuscany | | | =solid|borderColor=#C3CDA1|titleBGColor=#C3CDA1|bgColor=#ECF4D1}
* [|#Build Questions]
** [ |#BuildA]
** [ |#BuildB]
** [ |#BuildC]
** [ |#BuildD]
** [ ?|#BuildE]
** [???? |#BuildF]
** [ |#BuildG]
** [mavenRC |#BuildH]
** [|#BuildI]
** [?Eclipse Tuscany Java SCA |#BuildJ]
** [Maven|#BuildK]
* [Java |#Implementation JavaQuestions]
** [ @Service ?|#ImplementationJavaA]
** [references?|#ImplementationJavaB]
* [|#Binding Questions]
** [SCA EJB|#BindingA]
* [??????|#DataBinding Questions]
** [???|#DataBindingA]
* [Contribution??|#Contribution Questions]
** [META-INF/sca-contribution.xml|#ContributionA]
** [META-INF/sca-deployables/ ? |#ContributionB]
* [Policy??|#Policy Framework Questions]
** [Tuscany 1.0? ?|#PolicyA]
** [Web'confidentiality' ?|#PolicyB]
* [ |
Anchor |
---|
| Build Questions |
---|
| Build Questions |
---|
| |#Specification Questions]
** [Tuscany Background Color |
---|
| ???????? Java? |
IBM ? Sun ? JDK 1.5 ??? |#SpecificationA]
** [Tuscany?????????????? ?? |#SpecificationB]
{panel}
h2. {anchor:Build Questions}
{bgcolor:#C3CDA1}JDK1.4?Tuscany SCA??????
{bgcolor}
h3. {anchor:BuildA}
{bgcolor:#C3CDA1}JDK1.5???????? Java?
{bgcolor}
IBM ? Sun ? JDK 1.5 ?????Tuscany? JDK1.6?XML????????????????
???? JDK1.4??? Tuscany SCA???????? JDK1.5????????????
JDK1.6? XML???????????JDK1.6? Code Block |
---|
javax????????????????????????????????????????????JDK1.6?
{code}
javax.xml.stream.FactoryConfigurationError: Provider
javax.xml.stream.XMLInputFactory could not be
instantiated: java.lang.InstantiationException
at
javax.xml.stream.XMLInputFactory.newInstance(XMLInputFactory.java:158)
{code}
h3. {anchor:BuildB}
{bgcolor:#C3CDA1} |
{bgcolor}
???? Apache Tuscany ??????? ?Maven ??????????Maven2.0.5?????????????????????????????????? ??2.0.5?
h3. {anchor:BuildC}
{bgcolor:#C3CDA1}????
{bgcolor}
????Tuscany?SVN ????????????????????????????????????? ???trunk????????????????????????????????????????????????? ??
????????????????????????????????????????? ??
????????? ?IDE
????????
{ Code Block |
---|
}
cd mytuscanydir
svn checkout [https://svn.apache.org/repos/asf/incubator/tuscany/java/]
{code}
??( | (???????????? ??)
{ Code Block |
---|
}
svn update [https://svn.apache.org/repos/asf/incubator/tuscany/java/]
{code}
| ???maven Code Block |
---|
??maven??
{code}
cd mytuscanydir/sca
mvn clean
{code}
|
???? ??maven ???????? ??maven ?????????? ?SCA?? Code Block |
---|
??
{code}
.m2\repository\org\apache\tuscany\sca
{code}
|
????sca
{ Code Block |
---|
}
cd mytuscanydir/sca
mvn
{code}
| ??????????????????????????
h3. {anchor:BuildD}
{bgcolor:#C3CDA1}???Java????
{bgcolor}
????itest???itest??????? ???"Java heap space" ????????itest???????????????????? ??
??"MAVEN_OPTS="-Xmx1024m -Xms512m" ????? ??sca?pom ??? [1 ]??surfire plugin????? ??
[1] [1 https://svn.apache.org/repos/asf/incubator/tuscany/java/sca/pom.xml ]
h3. {anchor:BuildE}
{bgcolor:#C3CDA1}?? Background Color |
---|
| ??????Eclipse? | ??
{bgcolor}
??????????????????svn???????????? No Format |
---|
??
{noformat}
demos
distribution
itest
modules
samples
tools
pom.xml
{noformat}
?? |
??maven?? Code Block |
---|
??
{code}
mvn
{code}
mvn?? |
mvn??????????????Eclipse Code Block |
---|
??
{code}
mvn -Peclipse eclipse:eclipse
{code}
?? |
???????".classpath" ? ".project"????????Eclipse????Eclipse?"File/Import/Existing Projects Into Workspace"??????? Eclipse????? "File/Import/Existing Projects Into Workspace"Eclipse?????????? ??????? Eclipse????????????
???????????????????????????????????????? Background Color |
---|
| ??WebApp??Eclipse WTP? |
?????Eclipse WTP?WebApp???WTP Web?????
h3. {anchor:BuildF}
{bgcolor:#C3CDA1}mvn eclipse:eclipse ???? WebApp?????? Eclipse WTP???
{bgcolor}
???????Eclipse WTP?????WebApp-Dwtpversion=1.5? Code Block |
---|
mvn -Dwtpversion=1.5 -Peclipse eclipse:eclipse
|
?-Dwtpversion=1.5???Eclipse?? WTP Web????<packaging>war</packaging> ???????? WTP Web??????? mvn eclipse:eclipse ??WTP Tomcat ? Geronimo Server ???, ???Eclipse? -Dwtpversion=1.5?
{code}
mvn -Dwtpversion=1.5 -Peclipse eclipse:eclipse
{code}
??? -Dwtpversion=1.5?????? ?Eclipse Background Color |
---|
| IBM JDK WSConfidentialityTestCase????? | WTP Web??java.lang.ExceptionInInitializerError arising from the base java.security.InvalidKeyException: Public key presented not for certificate signature - ????? | <packaging>war</packaging> ???????IBM JDK? jre\lib\security\java.security??????? WTP Tomcat ? Geronimo Server ??? No Format |
---|
#
# List of providers and their preference orders:
#
security.provider.1=org.bouncycastle.jce.provider.BouncyCastleProvider
security.provider.3=com.ibm.jsse2.IBMJSSEProvider2
security.provider.2=com.ibm.crypto.provider.IBMJCE
security.provider.4=com.ibm.security.jgss.IBMJGSSProvider, ???Eclipse?????????????
h3. {anchor:BuildG}
{bgcolor:#C3CDA1}??IBM JDK?? WSConfidentialityTestCase?????? java.lang.ExceptionInInitializerError arising from the base
java.security.InvalidKeyException: Public key presented not for certificate signature -
???????
{bgcolor}
?????????IBM JDK? jre\lib\security\java.security?????????????
{noformat}
#
# List of providers and their preference orders:
#
security.provider.1=org.bouncycastle.jce.provider.BouncyCastleProvider
security.provider.35=com.ibm.security.jsse2cert.IBMJSSEProvider2IBMCertPath
security.provider.26=com.ibm.cryptosecurity.providersasl.IBMJCE
security.provider.4=com.ibm.security.jgss.IBMJGSSProvider
security.provider.5=com.ibm.security.cert.IBMCertPath
security.provider.6=com.ibm.security.sasl.IBMSASL
{noformat}
h3. {anchor:BuildH}
{bgcolor:#C3CDA1}maven IBMSASL
|
Background Color |
---|
| maven ????????????? |
???
{bgcolor}
?????????? ???maven ????????????????????????????????? ??maven settings.xml???????????? Code Block |
---|
??
{code}
<mirrors>
<mirror>
<id>ant.staging</id>
<url>http://people.apache.org/~antelder/tuscany/1.0-RC1a/maven</url>
<mirrorOf>apache.incubator</mirrorOf>
</mirror>
{code}
|
settings.xml ????home ????.m2 ???????????? ? : "C:\Documents and Settings\Administrator\.m2"??????????????????: [settings.xml |https://svn.apache.org/repos/asf/incubator/tuscany/java/etc/settings.xml]
h3. {anchor:BuildI}
{bgcolor:#C3CDA1} Background Color |
---|
| ??????????????? |
{bgcolor}
Tuscany??JDK logger ??info, warning ?. ???????logging.properties ????. Tuscany ?????????????????JDK ?????INFO ???????????????????? ???logging.properties ???????? ??jre/lib ??????? ?IBM JDK Code Block |
---|
??
{code}
C:\thedirwhereiinstalledjava\jre\lib\logging properties
{code}
?? |
????????FINE???????? Code Block |
---|
??
{code}
.level= FINE
{code}
|
????????????
{ Code Block |
---|
}
java.util.logging.ConsoleHandler.level = INFO
{code}
?? | JDK?????????? [??|http://java.sun.com/j2se/1.4.2/docs/guide/util/logging/overview.html]?
h3. {anchor:BuildJ}
{bgcolor:#C3CDA1}???Eclipse?????Tuscany Java SCA?????
{bgcolor}
??? Background Color |
---|
| ?Eclipse?Tuscany Java SCA??? |
?????????java???????? [??? ??|http://www.eclipsezone.com/eclipse/forums/t53459.html]
????? ??JVM ????????????????? ?Calculator??? Code Block |
---|
??
{code}
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
-cp ..\..\lib\tuscany-sca-manifest.jar;target\sample-calculator.jar;
.calculator.CalculatorClient
Listening for transport dt_socket at address: 8000
3 + 2=5.0
3 - 2=1.0
3 * 2=6.0
3 / 2=1.5
{code}
??????????-X. ????????8000. ? Eclipse????????????????debug dialog????????"Remote Java Application"??????8000??????????
??????Eclipse????? Tuscany SCA ???????????calculator????
h3. {anchor:BuildK}
{bgcolor:#C3CDA1}Maven???????????????
{bgcolor}
???????????????????windows????????????????????.0
3 * 2=6.0
3 / 2=1.5
|
????????-X. ???????? ????????????????????????????8000. ? Eclipse????
h2. {anchor:Implementation JavaQuestions}
{bgcolor:#C3CDA1}Java???????
{bgcolor}
h3. {anchor:ImplementationJavaA}
{bgcolor:#C3CDA1}???@Service?????debug dialog????"Remote Java Application"??8000????????
{bgcolor}
{code}
@Service(interfaces={Interface1.class, Interface2.class, Interface3.class} )
public class ServiceImpl implements Interface1, Interface2, Interface3{
...
}
{code}
h3. {anchor:ImplementationJavaB}
{bgcolor:#C3CDA1}????Eclipse??? Tuscany SCA ?????????calculator?? Background Color |
---|
| Maven?????????????? | "? "?????
{bgcolor}
???????????windows?????? ...
{code}
public class ServiceImpl implements ServiceInterface1{
@Reference
ServiceInterface2 serviceReference1;
@Reference
private ServiceInterface2 serviceReference2;
@Reference
protected ServiceInterface2 serviceReference3;
@Reference
public ServiceInterface2 serviceReference4;
...
}
{code}
??????????????? serviceReference1 ? serviceReference2 ?? null????? SCA ?? "?? " protected ? public ??????????? "?? "?????????? @Callback, @ConversationId ? @Context?
h2. {anchor:Binding Questions}
{bgcolor:#C3CDA1}???????
{bgcolor}
h3. {anchor:BindingA}
{bgcolor:#C3CDA1} Anchor |
---|
| Implementation JavaQuestions |
---|
| Implementation JavaQuestions |
---|
| EJB Anchor |
---|
| ImplementationJavaA |
---|
| ImplementationJavaA |
---|
|
Background Color |
---|
| ?@Service??? | SCASLSB??
{bgcolor}
Code Block |
---|
@Service(interfaces={Interface1.class, Interface2.class, Interface3.class} )
public class ServiceImpl implements Interface1, Interface2, Interface3{
...
}
|
Anchor |
---|
| ImplementationJavaB |
---|
| ImplementationJavaB |
---|
|
Background Color |
---|
| ?????""????? |
??? SCA?? SLSB?????????? ???? :-)
h2. {anchor:DataBinding Questions}
{bgcolor:#C3CDA1}... Code Block |
---|
public class ServiceImpl implements ServiceInterface1{
@Reference
ServiceInterface2 serviceReference1;
@Reference
private ServiceInterface2 serviceReference2;
@Reference
protected ServiceInterface2 serviceReference3;
@Reference
public ServiceInterface2 serviceReference4;
...
}
|
???????serviceReference1 ? serviceReference2 ??
{bgcolor}
h3. {anchor:DataBindingA}
{bgcolor:#C3CDA1}null??? SCA "" protected ? public ????????? ?
{bgcolor}
""??????????@Callback, @ConversationId ? @Context? Anchor |
---|
| Binding Questions |
---|
| Binding Questions |
---|
|
Background Color |
---|
| ??EJB??SCA???SLSB |
?? Java ?? , XML ?? , ?? CORBA ?? , ?SCA??SLSB???????????? Anchor |
---|
| DataBinding Questions |
---|
| DataBinding Questions |
---|
|
Background Color |
---|
| ????????????? | Java??????????? Java???????????????????????Java ? ???Java?, XML ??, ??CORBA ??, ?? Java????????????????? ????????????????Java???????Java??? WSDL???????? WSDL???? XML???
?JavaJava?????Java??????????????????? , ??? XML??????? DOM, StAX ?? SDO, ? JAXB ???????WSDL?? AXIOM?? TuscanyWSDLXML? ?????????????
{quote}
{quote}
# *??????? data mediator interceptor???, ???XML???DOM, StAX ??SDO, ? JAXB ?????? R??? AAXIOM??Tuscany????? S??? B???? - ?????data mediator interceptor????
*
- ??????????R?A??
A- ???S?B?????????????
???????????AB???????????????????
- ??????????????????????
????????? (- ????????
)- ????????????(????
Axis2- )?
RMI- ???????????Axis2?RMI??????????????
Axis2- ???
AXIOM- ?????Axis2?AXIOM??????????????
AXIOM- ????AXIOM??????????????????AXIOM
?- ???????????????????
?- :
## A ??- A ??Java
- ??
- X(java)
?? R
## X - R
- X ???
- R???
## - ?????
- X(java)
- ???
- AXIOM
- ??
- X(axiom)
## - X(axiom)
??- ?Axis2???
??
## - Axis2???
- X(axiom)
??- ?(XML
??)????
## - )??
Axis2- ??
- Axis2??????
- XML
- ?????
- X(axiom)
## - X(axiom)
??- ?Axis2???
??
## - ??????????????
- X(axiom)
- ???
- X(java)
## - X(java)
- ???
- B???
## - B???????????????
- X(java)
.???????????????????????
??- :
???- ???
?- A
????- Axis2
????- ???????Axis2
?- ???????
?- B?
?????????????????
- A
- ?
- B?????A
- ?
- B
- ???????????????????????????
- A->net
- ?
- net->B?
h2. {anchor:Contribution Questions}
{bgcolor:#C3CDA1}
Anchor |
---|
| Contribution Questions |
---|
| Contribution Questions |
---|
|
Background Color |
---|
| Contribution????? |
{bgcolor}
h3. {anchor:ContributionA}
{bgcolor:#C3CDA1} Anchor |
---|
| ContributionA |
---|
| ContributionA |
---|
|
Background Color |
---|
| META-INF/sca-contribution.xml??????? |
{bgcolor}
[SCA ?????? 1.00?|http://www.osoa.org/display/Main/Service+Component+Architecture+Specifications] ?SCA ?????? 1.00? 1.10.2.3. ?????????sca-contribution.xml???????????????????????? ??
??????????contribution?
{ Code Block |
---|
}
/my/contribution/dir
{code}
| ??????????????????? ??contribution ??. ??, ??????
{ Code Block |
---|
}
/my/contribution/dir/META-INF/sca-contribution.xml
/my/contribution/dir/mycomposite.composite
{code}
| sca-contribution.xml???
{ Code Block |
---|
}
<contribution xmlns="http://www.osoa.org/xmlns/sca/1.0"
targetNamespace="http://mycomposite"
xmlns:management="http://mycomposite">
<deployable composite="mycomposite:MyComposite"/>
</contribution>
{code}
| ?contribution??? ??mycomposite.composite ??????????mycomposite:MyComposite ?? ?, ???????
h3. {anchor:ContributionB}
{bgcolor:#C3CDA1} Anchor |
---|
| ContributionB |
---|
| ContributionB |
---|
|
Background Color |
---|
| META-INF/sca-deployables/ |
{bgcolor}
????Tuscany ??????????, SCA????????? ??
???????????contribution?
{ Code Block |
---|
}
/my/contribution/dir
{code}
| ???????????????????? ??/META-INF/sca-deployables/???????? Code Block |
---|
??
{code}
/my/contribution/dir/META-INF/sca-deployables/mycomposite.composite
{code}
h2. {anchor:Policy Framework Questions}
{bgcolor:#C3CDA1}???????
{bgcolor}
h3. {anchor:PolicyA}
{bgcolor:#C3CDA1}Tuscany 1.0 |
Anchor |
---|
| Policy Framework Questions |
---|
| Policy Framework Questions |
---|
|
Background Color |
---|
| Tuscany 1.0 ???????????? |
{bgcolor}
Java SCA Java SCA 1.0??, ??SCA ????????????? definitions.xml ???????? ???SCA ?????????? ??With respect to processing, computing aplicable policies and applying them is concerned here is what the Release1.0 ????:
- - ???????????????????????????????????????????
- ???????????? - helloworld-ws-service-secure????
????
- ?? ??????????
- ????
- ?????????????? ??[|http://www.mail-archive.com/tuscany-dev%40ws.apache.org/msg21699.html]?
h3. {anchor:PolicyB}
{bgcolor:#C3CDA1} Background Color |
---|
| ??????Axis2 |
{bgcolor}
- ????
- ??- ??????????Axis2??????????????
??[][][]
- ?? - helloworld-ws-service-secure
????xml????????????- ??????????????????????keystore?
??
- ????????
- ?????????? ??
h2. {anchor:Specification Questions}
{bgcolor:#C3CDA1} Anchor |
---|
| Specification Questions |
---|
| Specification Questions |
---|
| ??
{bgcolor}
h3. {anchor:SpecificationA}
{bgcolor:#C3CDA1}Tuscany Anchor |
---|
| SpecificationA |
---|
| SpecificationA |
---|
|
Background Color |
---|
| Tuscany ????????? |
{bgcolor}
SCA SCA ???????6?:
[http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=sca-assembly ]
[ http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=sca-policy ]
[ http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=sca-bindings ]
[ http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=sca-j ]
[ http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=sca-c-cpp ]
[ http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=sca-bpel ]
??????????????????????
???????
[http://www.oasis-open.org/archives/sca-assembly/ ]
[ http://www.oasis-open.org/archives/sca-policy/ ]
[ http://www.oasis-open.org/archives/sca-bindings/ ]
[ http://www.oasis-open.org/archives/sca-j/ ]
[ http://www.oasis-open.org/archives/sca-c-cpp/ ]
[ http://www.oasis-open.org/archives/sca-bpel/ ]
h3. {anchor:SpecificationB}
{bgcolor:#C3CDA1}What does the promote keyword in the composite file mean?
{bgcolor}
An SCA composite can be used as an implementation Anchor |
---|
| SpecificationB |
---|
| SpecificationB |
---|
|
Background Color |
---|
| What does the promote keyword in the composite file mean? |
An SCA composite can be used as an implementation (implementation.composite) for a component. This is so-called recursive composition. It allows pre-assembled composites to be reused.
"promote" can be used to make services or references declared on a component inside the composite visible for wiring at the composite level. The composite services and references can be then further configured when it's used as a component implementation at outer level.
Hope the following samples help. Code Block |
---|
{code}
<composite name="Composite1" xmlns:ns="http://dummy">
<component name="C1">
<implementation.composite name="ns:Composite2">
<!-- wire ref1 to component C3's service1 -->
<reference name="ref1" target="C3/service1"/>
<!-- configure the service with ws binding -->
<service name="svc1">
<binding.ws .../>
</service>
</component>
</composite>
|
Code Block |
---|
{code}
{code}
<composite name="Composite2" targetNamespace="http://dummy"
xmlns:ns="http://dummy">
<component name="C2">
<implementation.java class="my.C2Impl">
</component>
<!-- innerService of component C2 is promoted as svc1 -->
<service name="svc1" promote="C2/innerService"/>
<!-- innerReference of component C2 is promoted as ref1 -->
<reference name="ref1" promote="C2/innerReference"/>
</composite>
{code}
|
|