Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Section
bordertrue
Column
width15%
Include Page
TUSCANYWIKI: SCA Java Subproject Menu in Chinese
TUSCANYWIKI: SCA Java Subproject Menu in Chinese
Column
width85%
Wiki Markup
 
???? Apache Tuscany Java SCA FAQ ???????????????

\\ 
{panel:title=Apache Tuscany SCA????|borderStyle=solid|borderColor=#C3CDA1|titleBGColor=#C3CDA1|bgColor=#ECF4D1} 
* [?????????|#Build Questions] 
** [???????? Java?|#BuildA] 
** [???????? Maven?|#BuildB] 
** [??????? Tuscany ??????? |#BuildC] 
** [??????Java Heap ???|#BuildD] 
** [?????????? Eclipse ?? ?|#BuildE] 
** [??????WebApp?????? Eclipse WTP ??? |#BuildF] 
** [??IBM JDK I??WSConfidentialityTestCase ????java.lang.ExceptionInInitializerError arising from the base java.security.InvalidKeyException: Public key presented not for certificate signature - ?????????|#BuildG] 
** [maven????????????????RC????????? |#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] 
* [??????|#Specification Questions] 
** [Tuscany ??????????|#SpecificationA] 
** [????????????????|#SpecificationB] 
  
{panel} 

h2. {anchor:Build Questions} 

{bgcolor:#C3CDA1}?????? 
{bgcolor} 

h3. {anchor:BuildA} 

{bgcolor:#C3CDA1}???????? Java? 
{bgcolor} 
IBM ? Sun ? JDK 1.5 ?????Tuscany????????????????

????JDK1.4???Tuscany SCA????????JDK1.5????????????

JDK1.6?XML???????????????????????????????????????????????????????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}???????? Maven? 
{bgcolor} 
???? Apache Tuscany????????Maven??????????Maven2.0.5????????????????????????????????????2.0.5?

h3. {anchor:BuildC} 

{bgcolor:#C3CDA1}??????Tuscany??????? 
{bgcolor} 
????Tuscany?SVN????????????????????????????????????????trunk??????????????????????????????????????????????????? 

??????????????????????????????????????????? 

??????????IDE
????????

{code}
cd mytuscanydir
svn checkout [https://svn.apache.org/repos/asf/incubator/tuscany/java/]
{code}

??(??????????????)

{code}
svn update [https://svn.apache.org/repos/asf/incubator/tuscany/java/]
{code}

?????maven??

{code}
cd mytuscanydir/sca
mvn clean
{code}

??????maven??????????maven???????????SCA????
{code}
.m2\repository\org\apache\tuscany\sca
{code}
????sca
{code}
cd mytuscanydir/sca
mvn
{code}
??????????????????????????

h3. {anchor:BuildD} 

{bgcolor:#C3CDA1}???Java????
{bgcolor} 
????itest???????????"Java heap space"????????itest?????????????????????? 

??"MAVEN_OPTS="-Xmx1024m -Xms512m"???????sca?pom???[1]??surfire plugin???????

[1] [https://svn.apache.org/repos/asf/incubator/tuscany/java/sca/pom.xml]

h3. {anchor:BuildE} 

{bgcolor:#C3CDA1}????????Eclipse???
{bgcolor} 
??????????????????svn??????????????
{noformat} 
demos 
distribution 
itest 
modules 
samples 
tools 
pom.xml 
{noformat} 
????maven????
{code} 
mvn 
{code} 
mvn????????????????Eclipse??
{code} 
mvn -Peclipse eclipse:eclipse 
{code} 
?????????".classpath" ? ".project"????????????Eclipse????????Eclipse?????"File/Import/Existing Projects Into Workspace"????????????????Eclipse????????????

???????????????????????????????????????????????????????????

h3. {anchor:BuildF} 

{bgcolor:#C3CDA1}????WebApp??????Eclipse WTP??? 
{bgcolor} 
???????Eclipse WTP?????WebApp???????WTP Web???????mvn eclipse:eclipse ?????????? -Dwtpversion=1.5?
{code} 
mvn -Dwtpversion=1.5 -Peclipse eclipse:eclipse 
{code} 
???-Dwtpversion=1.5???????Eclipse???? WTP Web??????<packaging>war</packaging> ?????????????????WTP Tomcat ? Geronimo Server ???, ???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.3=com.ibm.jsse2.IBMJSSEProvider2 
security.provider.2=com.ibm.crypto.provider.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 ?????????????
{bgcolor} 

?????????????maven???????????????????????????????????maven settings.xml??????????????

{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}??????????????? 
{bgcolor} 
Tuscany??JDK logger ??info, warning ?. ???????logging.properties????. Tuscany?????????????????JDK?????INFO???????????????????????logging.properties??????????jre/lib????????IBM JDK??

{code} 
C:\thedirwhereiinstalledjava\jre\lib\logging properties 
{code} 

??????????FINE??????????

{code} 
.level= FINE 
{code} 

????????????

{code} 
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} 

???????????java????????[?????|http://www.eclipsezone.com/eclipse/forums/t53459.html] 

???????JVM??????????????????Calculator?????

{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????????????????????????????????????????????????????????????????????

h2. {anchor:Implementation JavaQuestions} 

{bgcolor:#C3CDA1}Java??????
{bgcolor} 

h3. {anchor:ImplementationJavaA} 

{bgcolor:#C3CDA1}???@Service????????????
{bgcolor} 
{code} 
@Service(interfaces={Interface1.class, Interface2.class, Interface3.class} ) 
public class ServiceImpl implements Interface1, Interface2, Interface3{ 
... 
} 
{code} 

h3. {anchor:ImplementationJavaB} 

{bgcolor:#C3CDA1}???????"??"?????
{bgcolor} 
???????????????...
{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}????EJB??????SCA???????SLSB??
{bgcolor} 
?????????????SCA??SLSB?????????????? :-) 

h2. {anchor:DataBinding Questions} 

{bgcolor:#C3CDA1}?????????
{bgcolor} 

h3. {anchor:DataBindingA} 

{bgcolor:#C3CDA1}??????????????
{bgcolor} 
???????????????????????????Java ??, XML ??, ??CORBA ??, ???????????????????
??????????????????Java???????????Java???????????????????????Java????Java?????????Java???????????????????????????????????????????WSDL????????WSDL????XML???
?????????????????????????, ???XML???????DOM, StAX ??SDO, ? JAXB ?????????AXIOM??Tuscany??????????????
{quote} 

{quote} 
# *???????data mediator interceptor??????????????????R???A???????S???B?????????????* 
?????????????A????B???????????????????????????????????????????
???????????????????????????????(????????)????????????????Axis2?RMI??????????????????????????Axis2???AXIOM????????????????????AXIOM??????????????????????AXIOM?????????????????????: 
## A ????Java ?? X(java)?? R 
## X ??? R??? 
## ????? X(java) ??? AXIOM ?? X(axiom) 
## X(axiom) ???Axis2????? 
## Axis2??? X(axiom)???(XML??)???? 
## ??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}Contribution?????
{bgcolor} 

h3. {anchor:ContributionA} 

{bgcolor:#C3CDA1}META-INF/sca-contribution.xml???????
{bgcolor} 
[SCA ?????? 1.00?|http://www.osoa.org/display/Main/Service+Component+Architecture+Specifications] ??1.10.2.3.?????????sca-contribution.xml??????????????????????????

??????????contribution?
{code}
/my/contribution/dir 
{code}
?????????????????????contribution??. ??, ??????
{code}
/my/contribution/dir/META-INF/sca-contribution.xml 
/my/contribution/dir/mycomposite.composite 
{code}
sca-contribution.xml???
{code}
<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}META-INF/sca-deployables/ ???????
{bgcolor} 
????Tuscany??????????, SCA???????????

???????????contribution?
{code}
/my/contribution/dir 
{code}
??????????????????????/META-INF/sca-deployables/??????????
{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 ????????????
{bgcolor} 
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????:
- ???????????????????????????????????????????
- ?????????axis2????????binding-ws-axis2????itest???????? helloworld-ws-service-secure??????ws-security??????
- itest ?????????"confidentiality intent"???????????Tuscany??????API??????????
- ??WS-Policy??, ??????????
- ????????????sca???????'appliesTo'?????xpath?????????????????? ????????[?????|http://www.mail-archive.com/tuscany-dev%40ws.apache.org/msg21699.html]?

h3. {anchor:PolicyB} 
{bgcolor:#C3CDA1}??????Axis2 WS ?????'confidentiality' ???
{bgcolor} 
- ??????????????bouncycastle?????. ??????????????? (? IDEA)?
- ????????????Axis2????????????????[http://wso2.org/library/234]?[http://wso2.org/library/174]?[http://wso2.org/library/255]? 
- ? ws-binding-axis2???itest? helloworld-ws-service-secure????definitions.xml??????????(confidentiality)????????Axis2ConfigParam??????????????????????????keystore???keystore?????????, ??password callback handler ???
- ?????????binding.ws???????????bcprov-jdk15-132.jar???classpath??
- ??JRE????????security.policy???????????????????Sun?IBM?JRE??????? ????

h2. {anchor:Specification Questions} 

{bgcolor:#C3CDA1}???????
{bgcolor} 

h3. {anchor:SpecificationA} 
{bgcolor:#C3CDA1}Tuscany ?????????
{bgcolor} 
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 (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} 
<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} 

{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}