写在前面:
现在有很多开发webservice的方法以及框架,什么cxf等,但是这些在你编写服务类的时候都要用到注解这个功能。如果现在的jdk是1.4的,那么就不能使用注解这个功能了。所以这里可以用到axis这个工具。
1.所需jar包:
2.一般webservice在工作中,都是用在web项目中,所以创建web项目,将所需jar包放在lib目录下
3.在web.xml文件中,添加
<servlet> <servlet-name>AxisServlet</servlet-name> <servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class> </servlet> <!-- 这里是访问服务的路径 --> <servlet-mapping> <servlet-name>AxisServlet</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping>
4.创建服务类,一个接口,一个实现类即可,首先是接口
package edu.hue.server;public interface SayHello {public String say(String name); }
然后是接口的实现类
package edu.hue.server;public class SayHelloImpl implements SayHello{public String say(String name) {return "Hello my friend " + name; } }
5.下面在WEB-INF下面创建server-config.wsdd(这个文件直接创建,然后将下面的代码复制就可以了,然后根据需要添加自己的服务的配置,其实这个文件是可以自己生成的,需要自己创建一个deploy.wsdd,启动项目运行之后,会自动生成server-config.wsdd。这里为了方便,直接省略过程,只需要在server-config.wsdd上添加自己的服务就可以了,先学会用再说)
<?xml version="1.0" encoding="UTF-8"?> <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <!-- 这里的globalConfiguration暂时不用管是什么意思,可以先注释掉,不影响结果 <globalConfiguration> <parameter name="sendMultiRefs" value="true"/> <parameter name="disablePrettyXML" value="true"/> <parameter name="adminPassword" value="admin"/> <parameter name="attachments.Directory" value="E:\sotfWares\sotfware\Tomcat\apache-tomcat-7.0.62-windows-x86\apache-tomcat-7.0.62\webapps\test_axis3\WEB-INF\attachments"/> <parameter name="dotNetSoapEncFix" value="true"/> <parameter name="enableNamespacePrefixOptimization" value="false"/> <parameter name="sendXMLDeclaration" value="true"/> <parameter name="sendXsiTypes" value="true"/> <parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/> <requestFlow> <handler type="java:org.apache.axis.handlers.JWSHandler"> <parameter name="scope" value="session"/> </handler> <handler type="java:org.apache.axis.handlers.JWSHandler"> <parameter name="scope" value="request"/> <parameter name="extension" value=".jwr"/> </handler> </requestFlow> </globalConfiguration> --> <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/> <handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/> <handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/> <!-- 这里的几个服务也可以先注释掉 这是自带的服务 注释后就只显示自己的服务<service name="AdminService" provider="java:MSG"> <parameter name="allowedMethods" value="AdminService"/> <parameter name="enableRemoteAdmin" value="false"/> <parameter name="className" value="org.apache.axis.utils.Admin"/> <namespace>http://xml.apache.org/axis/wsdd/</namespace> </service> <service name="Version" provider="java:RPC"> <parameter name="allowedMethods" value="getVersion"/> <parameter name="className" value="org.apache.axis.Version"/> </service> --> <transport name="http"> <requestFlow> <handler type="URLMapper"/> <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/> </requestFlow> <parameter name="qs:list" value="org.apache.axis.transport.http.QSListHandler"/> <parameter name="qs:wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/> <parameter name="qs.list" value="org.apache.axis.transport.http.QSListHandler"/> <parameter name="qs.method" value="org.apache.axis.transport.http.QSMethodHandler"/> <parameter name="qs:method" value="org.apache.axis.transport.http.QSMethodHandler"/> <parameter name="qs.wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/> </transport> <transport name="local"> <responseFlow> <handler type="LocalResponder"/> </responseFlow> </transport> <!-- 配置自己的服务 --> <service name="sayHello" provider="java:RPC"> <parameter name="className" value="edu.hue.server.SayHelloImpl" /> <parameter name="allowedMethods" value="*" /> </service> </deployment>
参数解释:name:为服务起的一个名字这里叫sayHello,然后下面的value="这里填的是你服务的实现类的全路径",差不多就这两个参数需要改动,其他的复制就可以了
6.运行项目,浏览器输入:localhost:8080/test_axis3_stub/services,回车,就可以访问了。
localhost:8080/test_axis3_stub(项目名)/services(服务的访问路径,在web.xml里就配置了拦截/services/*,故这里只需要输入services,就可以访问)
这里说的都是简单的入门,如果涉及到复杂参数,如bean的传递,还需要下去研究。(貌似也需要在server-config.wsdd里面配置服务的时候,进行相关的配置)
Atas ialah kandungan terperinci 开发webservice服务端的实例教程. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Javadevelopmentisnotentirelyplatform-independentduetoseveralfactors.1) jvmvariationsaffecperformanceandbehavioracrossdifferentos.2) nativelibrariesviajniintroduceplatform-specificiSsues.3)

Kod Java akan mempunyai perbezaan prestasi apabila berjalan pada platform yang berbeza. 1) Strategi pelaksanaan dan pengoptimuman JVM adalah berbeza, seperti OracleJDK dan OpenJDK. 2) Ciri -ciri sistem operasi, seperti pengurusan memori dan penjadualan thread, juga akan menjejaskan prestasi. 3) Prestasi boleh ditingkatkan dengan memilih JVM yang sesuai, menyesuaikan parameter JVM dan pengoptimuman kod.

Java'splatformindecthaslimitationscludingperformanceOverhead, VersionCompateIssues, cabaranwithnativelibraryintegration, platform-specificfeatures, danjvminstallation/penyelenggaraan.

Platformindependenceallowsprogramstorunonanyplatformwithoutmodification,whilecross-platformdevelopmentrequiressomeplatform-specificadjustments.Platformindependence,exemplifiedbyJava,enablesuniversalexecutionbutmaycompromiseperformance.Cross-platformd

JITcompilationinJavaenhancesperformancewhilemaintainingplatformindependence.1)Itdynamicallytranslatesbytecodeintonativemachinecodeatruntime,optimizingfrequentlyusedcode.2)TheJVMremainsplatform-independent,allowingthesameJavaapplicationtorunondifferen

Javaispopularforcross-platformdesktopapplicationsduetoits "writeOnce, runanywhere" falsafah.1) itusesBytecodethatrunsonanyjvm-equippedplatform.2) LibrariesLikeswingandjavafxhelpcreatenativeS.3) ITseShipBareSivaryS

Alasan untuk menulis kod khusus platform di Java termasuk akses kepada ciri sistem operasi tertentu, berinteraksi dengan perkakasan tertentu, dan mengoptimumkan prestasi. 1) Gunakan JNA atau JNI untuk mengakses Windows Registry; 2) Berinteraksi dengan pemandu perkakasan khusus Linux melalui JNI; 3) Gunakan logam untuk mengoptimumkan prestasi permainan pada macOS melalui JNI. Walau bagaimanapun, menulis kod khusus platform boleh menjejaskan mudah alih kod, meningkatkan kerumitan, dan berpotensi menimbulkan risiko overhead dan keselamatan.

Java akan meningkatkan lagi kemerdekaan platform melalui aplikasi awan asli, penempatan pelbagai platform dan interoperabilitas silang bahasa. 1) Aplikasi asli awan akan menggunakan GraalVM dan Quarkus untuk meningkatkan kelajuan permulaan. 2) Java akan diperluaskan ke peranti tertanam, peranti mudah alih dan komputer kuantum. 3) Melalui Graalvm, Java akan mengintegrasikan dengan lancar dengan bahasa seperti Python dan JavaScript untuk meningkatkan interoperabilitas silang bahasa.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

SublimeText3 versi Inggeris
Disyorkan: Versi Win, menyokong gesaan kod!

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

PhpStorm versi Mac
Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna

Dreamweaver CS6
Alat pembangunan web visual
