1.ç»å®çè±è¯åè¯
2.javaè°ç¨webserviceä¾å
3.å¦ä½ç¨Macå®ç¾ç¼è¯OpenJDK 7
ç»å®çè±è¯åè¯
ããç»å®æ¯å ¬å¸æè 社å¢ä¸ºäºæ´å¥½ç为客æ·æå¡æè åæ¶äºè§£å®¢æ·ä¿¡æ¯æéç¨çä¸ç§ç®¡çææ³ã常è§çæææºç»å®ï¼é®ç®±ç»å®çãé£ä¹ä½ ç¥éç»å®çè±è¯åè¯æ¯ä»ä¹å?thinksns手机端源码ä¸é¢æ¥å¦ä¹ ä¸ä¸å§ãããç»å®è±è¯åè¯ï¼
ããbinding
ããç»å®çè±è¯ä¾å¥ï¼
ããå¯ä»¥éè¿è¿äºæ¥éª¤æ¥ç»å®å·²ç»å®ç设置åæªç»å®ç设置ã
ããYou can bind both bound and unbound settings with these steps.
ããç»å®åéæ¯ä¸ç»å¼ç¨ç»å®ä¿¡æ¯çç»å®å¥æã
ããA binding vector is a set of binding handles referring to binding information.
ããåç»å®æ¥å£ä½¿COM客æ·ç«¯è½å¤å¨æ©æç»å®ååæç»å®ä¹é´è¿è¡éæ©ã
ããDual interfaces enable COM clients to choose between early and late binding.
ããé ç½®æ件详ç»æè¿°äºSAMLæè¨ãåè®®åç»å®å¦ä½ç»åèµ·æ¥ä»¥æ¯ææå®ä¹çç¨ä¾ã
ããProfiles describe in detail how SAML assertions, protocols, and bindings combine to support a defined use case.
ããé¤äºæ¯ä¸ªå®ç°ç±»ï¼Castorè¿çææ述符(descriptor)ç±»ï¼è¯¥ç±»å å«ç»å®åéªè¯ä»£ç ã
ããAlong with each implementation class, Castor also generates a descriptor class that contains the binding and validation code.
ããè¿å¯ä»¥å¼ºå¶æ°æ®ç»å®æ§ä»¶éæ°ç»å®æ°æ®ï¼ä»¥ä¾¿å ¶è½å¤ä½¿ç¨æ°çæ°æ®ç»å®å±æ§è®¾ç½®ã
ããThis forces the data-bound control to rebind the data so it can use the new data-binding property setting.
ããæªç»å®ç设置æ¯å·²ç»å é¤å ¶ç»å®ç设置ï¼æå·²ç»å®ä¹ä½ä»¥å没æç»å®å°ä»»ä½å±æ§ç设置ã
ããAn unbound setting is a setting whose bindings you have deleted, or a setting you have defined but not previously bound to any property.
ããå¨è®¿é®è¿ç¬¬äºä¸ªç»å®ä¿¡æ¯(称为é´æ¥ç»å®)ä¹åï¼è°ç¨è å°±å¯ä»¥å®å ¨çç¼äºè¿ä¸ªé´æ¥ç»å®çææ¯æ纹ã
ããAfter accessing this second binding (called the indirect binding), the caller looks at the fingerprint of the indirect binding.
ãã端å£ä¹é´çè¿äºè¿æ¥ç§°ä¸ºæ¥éª¤ç»å®ï¼å®ä»¬æ§å¶XMLææ¡£å¤çæµã
ããThese connections between ports are known as step bindings, and they control the flow of XML document processing.
ããåºç¨ç¨åºä¾èµçææ.jarç»ä»¶ç»å®å¨project.xmlä¾èµå ³ç³»é¨åä¸æå®ï¼å¹¶ç±Mavenèªå¨å¤çã
ããAll of the bundling of.jar components that the application depends on are specified in the project.xml dependencies section and are handled automatically by Maven.
ããé¦å è¦æ³¨æï¼å¨Castoræä»»ä½å ¶ä»æ°æ®ç»å®æ¡æ¶ä¸ï¼ä½¿ç¨æ å°æ件é½è¦è±ä¸äºæ¶é´ã
ããTo start, note that using mapping files with Castor or any other data binding framework takes some time.
ããè¿æ ·ï¼SOAPå¤çå¨ååºç¨ç¨åºå°±åºè¯¥ç¥éè¿äºæ¥å¤´ä¸ä¸åç§ç±»çSOAPç»å®çä¸å ¼å®¹æ§ã
ããThus, SOAP processors and applications should be aware of these header incompatibilities with different kind of SOAP bindings.
ããå¦å¤ï¼å 为JAX-WS使ç¨JAXBè¿è¡ææçæ°æ®ç»å®ï¼æ以ä¸åéè¦jaxrpc-mappingæ件ã
ããAdditionally, since JAX-WS uses JAXB for all data binding purposes, the jaxrpc-mapping file is no longer necessary.
ããä¾å¦ï¼è®¾æ³æ¨å·²ç»æåå°é¨ç½²äºä¸ä¸ªåºç¨ç¨åºï¼è¯¥åºç¨ç¨åºä½¿ç¨æä¾å¤ç»å®çWebæå¡ã
ããFor example, imagine that you have successfully deployed an application that uses a Web service offering multiple bindings.
ããçä¸çXMLBeansï¼å¦å¤ä¸ç§å¼æ¾æºä»£ç çæ°æ®ç»å®å·¥å ·ã
ããCheck out XMLBeans, another open-source data binding tool.
javaè°ç¨webserviceä¾å
ç°å¨å¤§å¤æ°é¡¹ç®é½ä¼ç¨å°springï¼æ以éæ© CXF æ¡æ¶ï¼cxfè½å¾å¥½çåspringç»åå¨å®ç½ä¸è½½ææ°ç xcf 3.0.3 ç½ç« /xml/ns/javaee"
xmlns:xsi="/xml/ns/javaee
/xml/ns/javaee/web-app_3_0.xsd">
<display-name></display-name>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>cxfS</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>cxfS</servlet-name>
<url-pattern>/ws/*</url-pattern>
</servlet-mapping>
</web-app>
------------------------------------------------------------------------------------------------
é¨ç½²é¡¹ç®ï¼ç¶åè¿è¡Test.java
å¨æµè§å¨éé¢è¾å ¥ http://localhost:/cxf/ws/hwUrl?wsdl å¯æ¥çwebserviceæå¡æ¥å£ä¿¡æ¯
å¦ä½ç¨Macå®ç¾ç¼è¯OpenJDK 7
1.éæ©OS Xçæ¬å¾éè¦ã
ç®åè¿éMacçæ¬æ¯.ï¼é ç½®å¥½å¿ è¦ä¿¡æ¯ä»¥åå°±å¼å§ç¼ï¼ç»æé误满å±ãç®åçè¿ä¹ååç°æ¯ç¼è¯Cæ件çæ¶ååæ°æ误ï¼äºæ¯æ¥äºä¸ä¸ï¼æç¥éæ¯LLVMçæ¬å¤ªæ°ï¼ä¸å ¼å®¹ä½çæ¬çä¸äºç¼è¯åæ°ãç §çä¸é¢æ¹äºç¹ä»£ç ï¼ä½æ¯ä¾æ§ç¼è¯ä¸è¿ãæ¢ç¶é«çæ¬ä¸è¡ï¼å°±è£ 个ä½çæ¬çåãç±äºææ°çOS Xä¸è½è£ ä½çæ¬çXcodeï¼è£ äºXcodeæè½è£ LLVMï¼ï¼æ以å»ä¸äºä¸ä¸ª.8çOS Xè£ å¨èææºéï¼ç¶ååè£ ä¸ªXcode4.4ã
è£ å¥½Xcode以åï¼è¦æå¨ä¸è½½LLVMå®è£ ãæå¼Xcodeï¼é便建ç«ä¸ä¸ªç©ºé¡¹ç®ï¼ç¶åæå¼Preferencesï¼æ¾å°å¦ä¸æ示çå°æ¹å¼å§å®è£
第ä¸æ¥å±å°±è¿ä¹æå®äºã
2.å®è£ X
Xè¿ç©ææ¯unixç±»os使ç¨çå¾å½¢ç³»ç»ï¼.8以åçOS Xæ¯èªå¸¦çï¼ä½æ¯ä»æ¤ä»¥åå°±ä¸èªå¸¦äºã对åºäºMacï¼ä½ éè¦è£ XQuartzï¼è¿ä¸ªæ²¡æçæ¬éå¶ï¼å»ç½ä¸ä¸ææ°çå³å¯ãè£ è¿ä¸ªçåå æ¯å½æ¶å¨ç¼è¯PolicyToolsçæ¶ååºç°äºå¦ä¸é误ï¼
ld: library not found for -lX
å®è£ 以åè¦ä¸ºX建ç«è½¯è¿æ¥
sudo ln -s /usr/X/include/X /usr/include/X
3.å®è£ freetype
å¨linuxä¸ç¼è¯openjdkçæåå¯è½éå°è¿éè¦å®è£ freetypeçè¦æ±ï¼ç¶åå®è£ ä¸å¹¶å°å®è£ ç®å½å å°ç¯å¢åéé就好äºãä½æ¯OS Xä¸ä¸æ ·ï¼freetypeåç¬å®è£ å®é æ¯æ²¡ç¨çãè½ç¶åç¬å®è£ è½è®©ç¼è¯åçæ£æ¥éè¿ï¼ä½æ¯å°åé¢è¿æ¯ä¼åºéï¼è³äºåå æ没æ¾å°ãé£æä¹åå¢ï¼å®é ä¸å¦æå®è£ 好Xï¼freetypeå°±ä¸èµ·å®è£ 好äºï¼å¤§å®¶å¯ä»¥å»Xçç®å½éççæ¯å¦æfreetypeã
è½ç¶è¯´å®è£ äºXå°±èªå¸¦freetypeï¼ä½æ¯ç¼è¯è¿ç¨ä¸å¯è½ä¼åºç°å¦ä¸é误ï¼
error: freetype/config/ftheader.h: No such file or directory
å®é ä¸å°±æ¯ç®å½é®é¢ï¼æ§è¡ä¸é¢è¿å¥å½ä»¤å°±å¥½äºï¼
sudo ln -s /sr/X/include/freetype2/freetype/ /usr/X/include/freetype
4. é ç½®ç¯å¢åé
åå¨Linuxä¸ç¼è¯ç¸æ¯ï¼OS Xçç¯å¢åéé ç½®ç¸å¯¹æ¥è¯´ç®åå¾å¤ãåªéè¦é ç½®ç¼è¯éè¦çjdkållvmçç®å½å°±å¯ä»¥äºã
å 为å¾å¤æºä»£ç é½æ¯ç¨æ¬æºç°æçjdkæ¥ç¼è¯ï¼æ以é¢è£ ä¸ä¸ªä½çæ¬çjdkæ¯å¿ é¡»çï¼è¿éæ们éè¦å®è£ jdk6ãå®è£ 好以åï¼æ¾å°å ¶å®è£ ç®å½ï¼å¹¶æ·»å å¦ä¸ç¯å¢åéï¼
[plain] view plaincopy
export ALT_BOOTDIR=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
é常æ¥è¯´å®è£ ç®å½é½åºè¯¥å¨/System/Library/Java/JavaVirtualMachinesç®å½ä¸ãå¦æä¸å¨çè¯ï¼æ个æå·§å¯ä»¥æ¾å°ãå 为å®è£ 好jdk以åï¼ç³»ç»ä¼èªå¨å¨/usr/binä¸å»ºç«æåjavaå½ä»¤ç软è¿æ¥ï¼æ以æ§è¡âls -l /usr/bin/javaâå°±è½çå°è¿ä¸ªå½ä»¤æååªï¼ç¶åè¿ä¹é¡ºçæ¾ä¸å»å°±è½æ¾å°ã
llvmæ¯ç¼è¯Cç±»æ件æå¿ é¡»çï¼æ以è¦æå®çæå¨ç®å½æ·»å å°ç¯å¢åééãé常OS Xä¸å®è£ appé½ä¼æapp移å°Applicationsç®å½ä¸ï¼æ以ææåå®è£ Xcodeçæ¶åä¹æä»ç§»è¿å»äºï¼å¦æä½ æXcodeæ¾å¨äºå«çç®å½ï¼é£å°±æ¾å°å¯¹åºçç®å½å³å¯ã
[plain] view plaincopy
export ALT_COMPILER_PATH=/Applications/Xcode.app/Contents/Developer/usr/bin
5.è·åç¼è¯æºç
æç §è¿ä¸é¢ç第ä¸ç¹è·åæºä»£ç å¦æ没æè£ hgçéè¦èªè¡å®è£
å°ç°å¨ä¸ºæ¢ï¼ç¼è¯åçåå¤å·¥ä½å·²ç»å®æãæ们å¯ä»¥å æ§è¡make sanityæ§è¡ä¸ç¼è¯åçæ£æ¥ãå¦ææ£æ¥éè¿ï¼å æ¥ççå ·ä½çç¼è¯å½ä»¤ï¼
[plain] view plaincopy
make ALLOW_DOWNLOADS=true SA_APPLE_BOOT_JAVA=true SKIP_DEBUG_BUILD=false SKIP_FASTDEBUG_BUILD=false ALWAYS_PASS_TEST_GAMMA=true HOTSPOT_BUILD_JOBS=`sysctl -n hw.ncpu`
è¿éæ两个é®é¢ï¼
a. ALLOW_DOWNLOADS=true表示ç¼è¯è¿ç¨ä¸å 许ä¸è½½ãå 为æäºç¼è¯æ¨¡åï¼æ¯å¦jaxpï¼ç¼è¯èæ¬ä¸æå®äºéè¦ä¸è½½ç¹å®çå ãè½ç¶æ没è¯è¿è®¾ç½®æfalseä¼ä¸ä¼å½±åç¼è¯ï¼ä½æ¯è¿æ¯æ¨è设置ætrueãä½æ¯è¿å°±å¸¦æ¥å¦ä¸ä¸ªé®é¢ï¼ä¸è½½è¿ç±»å å¾è´¹æ¶é´ï¼ææ¶åå°±ä¼å¨é£å¡å¾é¿æ¶é´ï¼æ以ææ ¹æ®ç¼è¯æ¥å¿æ¾å°ç¼è¯èæ¬ä¸æ§å¶ä¸è½½çå ·ä½å½ä»¤ï¼ä¿®æ¹ä¿®æ¹å¹¶ä¸æç¨è¿ é·ä¸ç对åºå æ¾å°æ£ç¡®ç®å½ä¸ï¼ç¶åéæ°ç¼è¯ä¸éï¼å°±è½é¡ºå©éè¿äºãè¿ä¸ç¹åé¢æä¼è¯¦è¯´ã
b. SKIP_DEBUG_BUILD=false SKIP_FASTDEBUG_BUILD=falseè¿ä¸¤ä¸ªè¡¨ç¤ºç¼è¯åºæ¥çjdkæè hotspotæ¯å¦å¯ä»¥debugãFASTDEBUG表示çåºè¯¥æ¯æä¾ç®åçdebugåè½ï¼å¦ææ³è¦å®æ´çdebugï¼åSKIP_DEBUG_BUILDå¿ é¡»è®¾ç½®ä¸ºfalseãä¸è¿è¿éæéä¸ç¹ï¼å¦ææ³å¨debug jdkçæ¶åè½çå°debugä¿¡æ¯ï¼æ¯å¦åéåçï¼åªéè¦SKIP_FASTDEBUG_BUILD设置为falseå°±å¯ä»¥äº
å¦æè¿ä¸¤ä¸ªé®é¢é½ä¸æ¯é®é¢ï¼é£ä¹å°±å¯ä»¥æå车äºãå¦ædebugåfastdebugé½æ¯falseï¼åå ä¸ç¨èææºç¼è¯ï¼æ以éè¦çæ¶é´ä¼æ¯è¾é¿ï¼ä½ ä¹è®¸éè¦æ¾ä¸é¨é¿ä¸ç¹ççµå½±æ¥æ¶ç£¨ä¸ä¸äºãæåç¼è¯åºæ¥çç»ææ¯è¿æ ·çï¼
j2sdk-imageå°±æ¯èªå·±ç¼è¯åºæ¥çjdkï¼å¯ä»¥ç´æ¥ç¨äºãè³äºå ¶ä»ç®å½ä¸çå 容ï¼åä½èªå·±ç¢ç£¨å§ã
ç°å¨æ¥è¯´ä¸ALLOW_DOWNLOADS=trueå¼èµ·çé®é¢ã
ä½æ¯éå°ä¸è½½å¾ä¹ çå æ»å ±æä¸ä¸ªï¼
jaxp_.zipãjdk7-jaf-__.zipãjdk7-jaxws2_2_4-b-__.zip
ä¹å说è¿å¯ä»¥ä¿®æ¹ç¼è¯èæ¬è·³è¿ä¸è½½å¹¶ä¸ç¨æ们已ç»ä¸è½½å¥½çï¼ä½æ¯å®é ç¼è¯è¿ç¨ä¸ï¼è¿ä¸ä¸ªå 对åºççç¼è¯èæ¬æ¯å¨æçæçï¼æ以åªè½çå°ä»å¡å¨é£äºï¼æè½åä¸æ¥å¹¶æ¾å°èæ¬ä¿®æ¹ä¹ãå æ¤å 为è¿ä¸ä¸ªå ï¼æ»å ±éè¦å3次ãï¼æ¯èµ·ä¸ç´å¡å¨é£å¥½å¤ªå¤äºã
å设ç¼è¯çæ¯æ®éçæ¬ï¼å³éDEBUGåéFASTDEBUGãä¸é¢ä»¥jaxp_.zip为ä¾å讲ä¸ä¸æä¹ä¿®æ¹å¯¹åºèæ¬ï¼
èæ¬æå¨ä½ç½®ï¼openjdkæ ¹ç®å½/build/macosx-universal/jaxp/build/xml_generated/build-drop-jaxp_src.xml