JavaÓëWCF½»»¥£¨Ò»)£ºJava¿Í»§¶Ëµ÷ÓÃWCF·þÎñ
×î½ü¿ªÊ¼Á˽âWCF,дÁ˸ö×î¼òµ¥µÄHelloworld,Ïëͨ¹ýjava¿Í»§¶ËʵÏÖͨÐÅ¡£Ã»Ïëµ½ÒÔÎҵĻù´¡£¬¾ÓÈ»»¨ÁËÕûÕûÁ½Ì죨µ±È»Êǹ¤×÷ÒÔÍâµÄʱ¼ä£¬ºÇºÇ£©£¬Õû¸ö¹ý³Ì´ó·ÑÖÜÕÛ£¬ÌØÐ´Ï´ËÎÄ£¬ÒÔ¹©ÓÐÐèÒªµÄÅóÓѲο¼£º
µÚÒ»²½£ºÉú³ÉWCF·þÎñ
н¨WCF½â¾ö·½°¸£¬·Ö±ðÌí¼ÓÈý¸öÏîÄ¿,HelloTimeService(Àà¿â£©,HelloTimehost(¿ØÖÆÌ¨³ÌÐò£©,HelloTimeClient(¿ØÖÆÌ¨³ÌÐò£©,ÏîÄ¿½á¹¹Èçͼ£º

¸÷¸öÏîÄ¿µÄÖ÷Òª´úÂ룺
service£º

Host:

Client:

±àÒëͨ¹ýºó£¬²âÊÔHostºÍClient·Ö±ð³É¹¦£º


±£³ÖHost³ÌÐò´ò¿ª£¬ÕâÑù,WCF·þÎñ¾ÍÒ»Ö±¿ÉÒÔ±»Íⲿ³ÌÐòµ÷Óᣵ±È»Ò²°üÀ¨Java¿Í»§¶Ë¡£
ÎÒÃÇ¿´¿´Éú³ÉµÄWSDL


µÚ¶þ²½£ºµ÷ÓÃWCFÉú³ÉµÄWSDLÉú³Éjava¿Í»§¶Ë¡£
Ê×ÏÈ£¬ÇëÔÊÐíÎÒ½éÉÜÏÂaxis2,ËüµÄ¹Ù·½µØÖ·£ºhttp://ws.apache.org/axis2/
ÕâÊÇÒ»¸öjavaƽ̨µÄweb service½â¾ö·½°¸¡£ÎÒÃÇ×î³£ÓõÄÊÇWSDL2JavaºÍJava2WSDLÁ½¸ö¹¦ÄÜ¡£
¹ØÓÚWeb serviceµÄÁíÒ»¸ö½â¾ö·½°¸ÊÇxFire,ÎÒûÊÔ¹ý¡£
¹ØÓÚÃüÁîÐÐÖ´ÐÐWSDL2Java£¬ÎÒҲûÓÐÖ´Ðгɹ¦£¡¡¡ÎÒÕâÀï½éÉܵÄÊÇCode Generator Wizard
- eclipse Plug-in,Ò»¸öEclipseµÄ²å¼þ¡£¶øÇÒÊÇÔڲο¼ÁËÖÚ¶à½â¾ö·½°¸²ÅÅäÖóɹ¦£¡
ÌØ±ð¸ÐлyycxbjlµÄÕâÆªÎÄÕ£ºhttp://www.cnblogs.com/yycxbjl/archive/2010/06/14/1758063.html
ÎÒµÄJavaÕû¸öÅäÖû·¾³£º
1.°²×°JDK²¢ÅäÖû·¾³±äÁ¿
JAVA_HOME=D:\2000\Java\jdkUpdate(×¢Ò⣬²»´ø°æ±¾ºÅÊÇΪÁËÒÔºóÉý¼¶Ê±Ö»¸´ÖÆÎļþ£¬¶ø²»±ØÐ޸Ļ·¾³±äÁ¿¡££©
path=%JAVA_HOME%\bin;
classpath=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
2.ÏÂÔØ²¢°²×°Eclipse3.6£¬¾ÍÊÇ´ó¼ÒÊìϤµÄÌ«ÑôÉñHelios£¨½âѹ¼´¿É£©
½âѹµ½£ºD:\2000\Java\Eclipse
3.ÏÂÔØTomcat6.0.29(±¾ÎÄÖÐʹÓõÄÊÇÂÌÉ«°æ£¬¹Ê½âѹ¼´Íê³É)
½âѹµ½£ºD:\2000\Java\tomcat(×¢Ò⣬²»´ø°æ±¾ºÅÊÇΪÁËÒÔºóÉý¼¶Ê±Ö»¸´ÖÆÎļþ£¬¶ø²»±ØÐ޸Ļ·¾³±äÁ¿¡£)
ÓÉÓÚ°²×°µÄÊÇtomcat6.0²»ÓÃÅäÖÃtomcatµÄ»·¾³±äÁ¿£¬ÖÁÓÚÒÔǰµÄ°æ±¾¿ÉÒÔ²é×ÊÁÏ¡£
ÐèÒªÉèÖÃTOMCAT_HOME£¬CATAlINAµÈ»·¾³±äÁ¿
4.´Ó http://ws.apache.org/axis2/download/1_4_1/download.cgiÏÂÔØ
axis2-1.4.1-bin.zip
½âѹµ½£ºD:\2000\Java\Axis2£¬×¢Òâ²»ÒªÏÂÔØAxis2 1.5.1,ÔÒò£¨¾Ýyycxbjl˵£º¡°×îаæµÄ
1.5.0 Óë 1.5.1 ÖÐûÓÐ backport-util-concurrent-3.1.jar£¬
ÎÞ·¨½â¾ö£ºÊ¹ÓÃaxis2-eclipse-codegen-wizard²å¼þ£¬´ÓwsdlÎļþÉú³ÉjavaÎļþʱ³ö´íÎÞ·¨¼ÌÐøµÄÎÊÌ⣬¹Ê²»Ê¹Óᣣ©
5.ÏÂÔØ1.4.1°æµÄ axis2-eclipse-codegen-wizard Óë axis2-eclipse-service-archiver-wizard
http://ws.apache.org/axis2/tools/1_0/eclipse/wsdl2java-plugin.html#operation1
£¨µ«½âѹºóÀïÃæÏÔʾÊÇ1.3.0£¬ ½âѹµ½£ºD:\2000\java\Eclipse\dropins (Á¬Ñ¹Ëõ°üÖеĸùĿ¼һÆð½âѹ³öÀ´)¡£Ò²¿ÉÒÔÓô«Í³µÄlink·½·¨²¿Êð¡£
¸´ÖÆ D:\2000\Java\Axis2\lib\backport-util-concurrent-3.1.jar
Óë geronimo-stax-api_1.0_spec-1.0.1.jar
µ½£ºD:\2000\Java\Eclipse\dropins\Axis2_Codegen_Wizard_1.3.0\lib,
²¢±à¼
D:\2000\Java\Eclipse\dropins\Axis2_Codegen_Wizard_1.3.0\plugin.xml
ÔÚ runtime ÏÂ Ìí¼Ó
<library name="lib/backport-util-concurrent-3.1.jar"> <export name="*"/> </library> <library name="lib/geronimo-stax-api_1.0_spec-1.0.1"> <export name="*"/> </library> |
½«Axis2_Codegen_Wizard_1.3.0ÖØÃüÃûΪAxis2_Codegen_Wizard_1.4.1£¬(ÕâÊÇÕû¸ö²¿ÊðµÄ¹Ø¼ü£¡ÕâÀïÑûÔÂÕÛÌÚÁËÕûÕûÒ»Ì죡)
н¨Ò»¸öJava project,ÃüÃûΪGetWCFInfoByJavaClient,²¢ÔÚÐÂÏîÄ¿ÖÐÌí¼ÓÐÂÏòµ¼£¬File-New
´Ëʱ£¬ÎÒÃÇ¿ÉÒÔ¿´µ½ÆÚ´ýÒѾõÄwizard½çÃæ£º






´Ë½ø£¬ÔÚн¨µÄ GetWCFInfoByJavaClientÏîÄ¿Öн¨Ò»¸öpackage,ÃüÃûΪorg.tempuri,ÓëÇ°Ãæ×Ô¶¨ÒåµÄÃüÃû¿Õ¼äÒ»Ö¡£½«Éú³ÉµÄÁ½¸öÀàÎļþ£¬ServiceCallbackHandler.javaºÍServiceStub.javaÎļþÌí¼Ó½øÀ´£¬²¢ÔÚjreSE1.6¿âÖÐÌí¼Ód:\2000\Java\Axis2\libÏÂËùÓÐjarÎļþµÄÒýÓá£
×¢Òâ´ËʱÓиöÌØÊâµÄÎļþ£¬¼´Axis2_Codegen_Wizard_1.4.1\lib\axis2-1.4.1.jar,ÐèÒªÊÖ¶¯¸´ÖƵ½d:\2000\java\axis2\libϲ¢Ìí¼Óµ½ÏîÄ¿µÄjre¿âÖУ¬ÕâÊÇÑûÔµڶþ¸ö¿¨¿ÇµÄµØ·½£¬×ÁÄ¥Á˺þã¬É÷Ö®É÷Ö®¡£
ÏîÄ¿µÄ½á¹¹Ó¦¸ÃÈçÏÂͼ£º

eclipseµÄÃüÃû¿Õ¼äÌáʾ¾ÍÊDZÈvsÇ¿°¡£¡ºÜϲ»¶Ctrl+1¡£ºÇºÇ¡£Î¢ÈíÒªÊÇÄÜ×öµ½Õâµã£¬ÄǸöàºÃ°¡£¡
ÒªÃüµÄÊÇ£¬´Ëʱ¿â¶¼Ìí¼ÓÍê³É£¬¼ì²é´úÂëÒ²ÎÞÎ󣬾ÓÈ»±àÒë´íÎó£¬Ìáʾ£º
Access restriction: The type AxisFault
is not accessible due to restriction on required library
D:\2000\Java\Axis2\lib\axis2-kernel-1.4.1.jar

ÕâÏÂÎÒɵÑÛÁË£¬ÓÚÊǸϽôgoogle,ÕâÁ½Ììgoogle.comÀÏÊÇÎ޹ʰչ¤£¬ÕæÊÇ»ö²»µ¥ÐУ¬ÖÕÓÚÕÒµ½Ò»ÆªÀÏÍâµÄÎÄÕ£¬ËµÊÇÈçÏ£¬¼´¿É½â¾ö£º
Go to the Build Path settings in the
project properties. Windows -> Preferences ->
Java Compiler
Remove the JRE System Library
Add another JRE with a "perfect
match"
clean and build your project again.
It worked for me.
ÊÔÁËÏ£¬ÎÒµÄĬÈÏjre»·¾³¹ûÈ»ÊÇJDK5,ÓÚÊÇ»»Îªjre system¡¡library



ÖÕÓÚ±àÒë³É¹¦£¡¿´µ½Êï¹âÁË£¬

´Ëʱ£¬×îºóµÄ¹¤×÷¾ÍÊÇÔÚMainÖе÷ÓÃstubµÃµ½ÎÒÃÇÏëÒªµÄ·þÎñ½á¹ûÁË£¬¼òµ¥·½·¨£¬½«¸Õ²ÅÉú³ÉµÄ²âÊÔÀàµÄ·½·¨ÂÔ×÷Ð޸쬼´¿ÉÔËÐС£ÈçÏ£º

ÕâÕýÊÇÎÒÃÇÏëÒªµÄ½á¹û¡£
С½á£º
ÕâËäȻֻÊÇÒ»¸ö¼òµ¥µÄdemo,µ«ÎÒÎÊÁËÐí¶àÈË£¬²¢ÔÚÂÛ̳·¢ÎÊ£¬¿ÉÊÇÓÉÓÚʹÓû·¾³µÄ²»Í¬£¬×îÖÕûÕÒµ½ÀàËÆµÄ»·¾³£¬Ö»ºÃ×Ô¼ºÃþË÷ʵ¼ù£¬ºÃÔÚ»¹ÓÐÒ»µãµãjava»ù´¡£¬ÁíÍâÍøÉϼ¸¸öÂÛ̳ÏñjavaeyeÌṩµÄ´ð°¸¹ýÓڳ¾ɣ¬ÕâÕýÊÇjava³õѧÕß¿àÄÕÖ®´¦£¬ÕâµãÀ´¿´£¬Î¢ÈíµÄ¿ª·¢»·¾³ÎÞÂÛÈçºÎÊÇÖµµÃ³ÆÔ޵ģ¬ÖÁÉÙËü²»ÓÃÅܵ½±ðµÄµØÅÌÈ¥Îʴ𰸡£eclipse\tomcat\axisµÈ´ú±íµÄ·þÎñÆ÷ºÍ¿ª·¢»·¾³¡¢²å¼þÅäÖ÷dz£µÄÈóõѧÕßÎÞÄΣ¡ÒòΪÄã²»ÖªµÀij¸öjarÊÇ·ñÓëÆäËû¼¸Ç§¸öjarºÜºÃµÄ¼æÈÝ¡£²»ÖªµÀjava¸ßÊÖÃÇÊÇ·ñÖ¸Ò»ÌõÃ÷µÀ£¬·Ç³£¸Ðл£¡
¸½£ºWCFµÄÅäÖÃÎļþ£º
<?xml version="1.0" encoding="utf-8" ?> <configuration> <system.web> <compilation debug="true"/> </system.web> <system.serviceModel> <services> <service name="Sample.WCF.HelloTimeForJava.Service" behaviorConfiguration="MyServiceTypeBehaviors"> <endpoint address="HelloTimeService" binding="wsHttpBinding" contract="Sample.WCF.HelloTimeForJava.IService"> <identity> <dns value="localhost"/> </identity> </endpoint> <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/> <host> <baseAddresses> <add baseAddress="http://localhost:8000/"/> </baseAddresses> </host> </service> </services> <behaviors> <serviceBehaviors> <behavior name="MyServiceTypeBehaviors"> <serviceMetadata httpGetEnabled="True" httpGetUrl=""/> <serviceDebug includeExceptionDetailInFaults="False"/> </behavior> </serviceBehaviors> </behaviors> </system.serviceModel>
</configuration>
|
JavaÓëWCF½»»¥£¨¶þ)£ºWCF¿Í»§¶Ëµ÷ÓÃJava web service
ÔÚÉÏÆª¡¶ JavaÓëWCF½»»¥£¨Ò»)£ºJava¿Í»§¶Ëµ÷ÓÃWCF·þÎñ¡·ÖУ¬ÎÒ½éÉÜÁË×Ô¼ºÈçºÎʹÓÃaxis2Éú³Éjava¿Í»§¶ËµÄ±¯²Ò¾Àú¡£ÓÐͬѧÎÊÆðʹÓÃʲôÐÒ飬¾³õ²½ÑéÖ¤£¬·¢ÏÖÖ»ÓÐwsHttpBinding¿ÉÐУ¬¶øNetTcpBinding²»¿ÉÐУ¬¾ßÌåÔÒò´ý²é¡£×òÍí»ØÈ¥ÖØÐ²âÊÔWCF¿Í»§¶Ëµ÷ÓÃJava¡¡Web
Service£¬²¢½«¹ý³Ì¹«²¼ÈçÏ£º
Æäʵ±¾²»ÐèÒª×öweb service,Ö»ÊÇÔÀ´¹«¿ªµÄ¾µäµÄWeb serviceÏñ£¨http://soapinterop.java.sun.com/round2.base?WSDL£©µÈ²»¿É·ÃÎÊÁË¡£ÓÚÊÇÑûÔÂÖØÐ´ÁËÒ»¸ö±¾µØµÄweb
service£¬ÒÔ×÷ÑÝʾ¡£
µÚÒ»²½£º½¨Á¢±¾µØjava»·¾³£¬²¢¹¹½¨ web Service´úÂ룬·¢²¼web
service
1¡¢ÉèÖÃJava»·¾³£º
JDK6/J2SE1.6ÒÔÉÏ£¬±ØÐ룡£¡ºóÃæÑûÔ»á˵Ã÷ÔÒò¡£
Eclipse 3.6
Axis2_Codegen_Wizard_1.4.1²å¼þ£¬ÅäÖüûÉÏÎÄ¡¶
JavaÓëWCF½»»¥£¨Ò»)£ºJava¿Í»§¶Ëµ÷ÓÃWCF·þÎñ¡·
¼Ù¶¨ÒÔÉÏ»·¾³¶¼OK
2¡¢Services ·þÎñ¶ËÓ¦ÓóÌÐò
ÔÚEclipseÖÐн¨Ò»¸öjava project,ÃûΪJavaServiceForWCFClient,Èçͼ£º

Ñ¡ÔñÒ»¸öÔËÐÐʱ¿â

ÔÚsrcÏÂн¨Ò»¸öpackage,Èçͼ£º

ÔÚ¸ÃpackageÏÂн¨Ò»¸öÀàHelloTimeForWCF£¬´úÂëÈçÏ£º

Çë×¢ÒâÉÏͼÖУº@WebServiceµÄʹÓá£Õâ³ÆÎª Annotation »òÔªÊý¾Ý£¬ÓÉ Java SE
5 ÖÐÒýÈëµÄ Web Services ÔªÊý¾Ý¹æ·¶ (Web Services Metadata Specification)
ËùʹÓ᣿ª·¢ÈËÔ±ÔÚ¶ÔÀàºÍ·½·¨Ó¦Óà Annotation ֮ǰ¶¨ÒåÀàºÍ·½·¨£¬ÒÔÏòÔËÐÐʱÒýÇæÖ¸Ã÷ÈçºÎ½«À༰Æä·½·¨×÷Ϊ
Web Services ºÍ Web Services ²Ù×÷À´ÆôÓá£Java SE 6 ¸½´øÁËÕâÑùÒ»¸öÒýÇæ¡£@WebService
Annotation ½« SayHello Àà±ê¼ÇΪʵÏÖij¸ö Web Services £¬´Ó¶ø²úÉú¿É²¿ÊðµÄ
Web Services ¡£Õâ¸öÌØ¶¨µÄ Annotation ÊÇÒ»¸ö WSDL Ó³Éä Annotation£¬²¢½«
Java Ô´´úÂëÓë±íʾ Web Services µÄ WSDL ÔªËØÏà¹ØÁª¡££¨×¢£º±¾¶ÎÄÚÈÝÀ´×ÔIBM¹Ù·½ÍøÕ¾£¬https://www6.software.ibm.com/developerworks/cn/education/webservices/ws-eclipse-javase1/section3.html)
ÏÂÒ»²½£¬¾ÍÊÇAnt¹¤¾ß´óÅÉÓó¡µÄʱºòÁË£¬
ÔÚÏîÄ¿¸ù·¾¶ÏÂн¨Ò»build.xml£¬ÄÚÈÝÈçͼ£º

ÒÔ"Ant Build"·½Ê½ÔËÐиÃÎļþ£º

Ó¦¸ÃÔÚ¿ØÖÆÌ¨ÊÕµ½ÈçÏÂÐÅÏ¢£º

ÒÔÉÏÐÅÏ¢£¬±íÃ÷ant´´½¨³É¹¦£¡´Ëʱ£¬Ë¢ÐÂÏîÄ¿ÊÓͼ£¬Ó¦¸ÃµÃµ½ÈçͼËùʾµÄ½á¹û,ÆäÖлÆÉ«²¿·ÖΪ¸ÕÉú³ÉµÄÄÚÈÝ£º

ÔÚpackageÖÐÐÂÔöÒ»¸öÖ÷À࣬ÊÇ·ñ¸Ð¾õÓеãÏñWCFÖеÄHostÒýÇæ£¿Æäʵ×÷ÓþÍÊÇÈç´Ë¡£

ÆäÄÚÈÝÈçÏ£º

ÔËÐгÌÐò£¬¾ÍÈçͬÔËÐÐWCFÖеÄHost:

¿ÉÒÔÓÃÄÚ²¿µÄä¯ÀÀÆ÷À´ä¯ÀÀÕâ¸öµØÖ·£ºhttp://localhost:8080/JavaServiceForWCFClient?wsdl

ÖÁ´Ë£¬Java¡¡web¶Ë²¿ÊðÍê³É¡£
µÚ¶þ²½£º½¨Á¢±¾µØWCF¿Í»§¶Ë£¬µ÷ÓõÚÒ»²½Éú³ÉµÄweb service
н¨Ò»¸öÆÕͨµÄ¿ØÖÆÌ¨ÏîÄ¿£¬ÃûΪWCFClientFromJava,,²¢°´ÏÂͼËùʾʹÓÃSvcUtilÃüÁ(Svcutil.exe,ServiceModel
ÔªÊý¾ÝʵÓù¤¾ßÓÃÓÚÒÀ¾ÝÔªÊý¾ÝÎĵµÉú³É·þÎñÄ£ÐÍ´úÂ룬ÒÔ¼°ÒÀ¾Ý·þÎñÄ£ÐÍ´úÂëÉú³ÉÔªÊý¾ÝÎĵµ¡£ServiceModel
ÔªÊý¾ÝʵÓù¤¾ß¿ÉÔÚ Windows SDK °²×°Î»ÖÃÖÐÕÒµ½£¬Ò»°ãλÖÃΪ C:\Program Files\Microsoft
SDKs\Windows\v6.0\Bin)

Éú³Éºó£¬½«Éú³ÉµÄÎļþ°üº¬ÔÚÏîÄ¿ÖУ¬ÏîÄ¿½á¹¹ÈçÏ£º

Éú³ÉµÄapp.configÎļþÈçÏ£º

´Ëʱ£¬ÔÚprogram.csÎļþÖÐÌí¼ÓÈçÏ·½·¨£º

ÖÁ´Ë£¬WCF¿Í»§¶Ëµ÷ÓÃJava¡¡Web service³É¹¦£¡ |