「java服务端怎么写」java写服务器端

博主:adminadmin 2022-11-23 05:19:09 74

本篇文章给大家谈谈java服务端怎么写,以及java写服务器端对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java axis2 webservice 服务端区怎么写

webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录。

1.Axis2

Axis是apache下一个开源的webservice开发组件,出现的算是比较早了,也比较成熟。这里主要介绍Axis+eclipse开发webservice,当然不用eclipse也可以开发和发布webservice,只是用eclipse会比较方便。

(1)下载eclipse的Java EE版本

(2)下载axis2

(3)下载eclipse的axis2插件

Axis2_Codegen_Wizard

Axis2_Service_Archiver

推荐使用1.3的版本

(4)eclipse安装axis2插件

1)在任意目录下新建一个Axis2文件夹,在该文件夹下新建eclipse目录,在eclipse目录中新建plugins目录和 features目录,例如:D:\programSoftware\eclipse-SVN\Axis2\eclipse;

2)把下载的axis2插件解压,并把解压的文件放到新建的eclipse的plugins目录下;

3)在�lipse_home%的目录下新建links目录,并在links目录下新建axis2.link文件,内容为: path=D:\programSoftware\eclipse-SVN\Axis2;

4)重启eclipse,点击·file-new-other,如果看到Axis2 Wizards,则表明插件安装成功。

(5)安装axis2

下载Axis2的WAR Distribution并解压,把axis2.war包放置到%TOMCAT_HOME%/webapps下,启动tomcat,访问,Axis2安装成功。

(6)使用eclipse新建web工程,创建一个普通java类,至少包含一个方法。

(7)发布webservice

1)点击eclipse的File-New-other,打开Axis2 Wizards,选择Axis2 Service Archiver,然后Next;

2)选择Class File Location,也就是类文件存放路径,注意:只选到classes目录,不要包括包文件夹,然后 Next;

3)选择Skip WSDL,然后Next

4)一路Next到Select the Service XML file to be included in the Service archive,勾选Generate the service xml automatically;

5)Service Name-填写你的service名称,Class Name-填写类名称,要包括包名,然后点击load,然后点击 Finish,这时webservice就发布成功了;

6)然后到%TOMCAT_HOME%/webapps/axis2/WEB-INF/services 看看是否多了一个.aar的文件;

7)访问类名?wsdl 就可看到生成的wsdl文件了。

注意:以上的方式是发布到axis2.war包中,你也可以把生成.aar文件copy到你的实际应用中,同时,你也可以使用eclipse的create webservice功能发布你的webservice,选择axis2生成你的webservice,这样webservice就会部署到你的应用中了。

2.Apche CXF

CXF开发webservice也是比较方便和简单的,它和spring的集成可以说是非常地好。举一个CXF开发webservice的例子吧。

1)在eclipse中新建一个web工程,导入依赖包,如图:

2)编写一个接口,如:

public String test(@WebParam(name="value", targetNamespace = "", mode = WebParam.Mode.IN)String value);

注意:CXF开发的webservice,接口中的方法的参数一定要以这种方式,否则客户端调用的时候CXF服务端会接收不到参数的值,name:参数名称,可不写(建议写上),targetNamespace:命名空间,一定要填写上,默认是包名反过来的顺序,mode:参数类型,IN表示输入。

3)编写一个实现类,实现接口的方法;

4)和spring的集成,编写一个bean文件,如:cxf-beans.xml,内容如下:

Cxf-beans.xml代码

这个文件比较容易理解,就不解释了。

5)配置CXFServlet

在web.xml文件中配置CXFServlet,加载cxf-beans.xml文件,内容如下:

Web.xml代码

把工程部署到中间件,如tomcat,就可以访问该webservice了。

3.JDK开发webservice

1)编写一个Java类,如下:

Jdkwebservice.java代码

package demo;

import javax.jws.WebParam;

import javax.jws.WebService;

import javax.xml.ws.Endpoint;

@WebService

public class JdkWebService {

public String doSomething(@WebParam(name="value", targetNamespace = "", mode = WebParam.Mode.IN)String value) {

return "Just do it," + value + "!";

}

public static void main(String[] args) {

Endpoint.publish("", new JdkWebService());

}

}

2)运行该java类,在浏览器上就可以访问该webservice了。

注意:开发web工程的时候,这种方法不太友好。我们可以编写一个servlet类,在servlet类的初始化方法中发布webservice,这样我们的中间件服务器启动的时候就会帮我们自动webservice了。

用java写一个后台服务,怎么做啊,没有学过,根本不知道,求详细解答

最简单的,后台用servlet写,然后客户端通过Http协议向服务器端发送请求,服务器端通过tomcat容器接受HttpRequest请求,然后向客户端反馈HttpResponse响应。我看您还是把servlet学完在搞吧

java如何写webservice服务端

Java 中的 Web Service 分为基于 SOAP 的和基于 REST 的两种,下面简单说一个基于 SOAP 的例子。要使用 JDK6u4 之后的版本才能编译通过。

先编写一个 Web Service 的接口:

@WebService

@SOAPBinding(style = Style.RPC) 

public interface TimeServer {

    @WebMethod String getTimeAsString();

    @WebMethod long getTimeAsElapsed();

}

再编写 Web Service 实现:

import java.util.Date;

import javax.jws.WebService;

@WebService(endpointInterface = "test.TimeServer")

public class TimeServerImpl implements TimeServer {

    public String getTimeAsString() { return new Date().toString(); }

    public long getTimeAsElapsed() { return new Date().getTime(); }

}

最后启动 Web Service:

public class TimeServerPublisher {

    public static void main(String[ ] args) {

      Endpoint.publish("", new TimeServerImpl());

    }

}

如果正常启动,可以用浏览器访问 看到这个 Web Service 的 wsdl 文档。

怎么用java写一个针对各种不同请求的TCP服务端

服务器监听端口 做个无限循环 接到一个连接就创建一个通道线程,并将通道线程存储到一个list集合中

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.net.ServerSocket;

import java.net.Socket;

import java.text.SimpleDateFormat;

import java.util.ArrayList;

import java.util.Date;

import java.util.List;

/*

* 4.用socket通讯写出多个客户端和一个服务器端的通讯,

* 要求客户发送数据后能够回显相同的数据(回显功能)(实用TCP方式)。

*/

public class Test4Server {

// 主入口

public static void main(String[] args) throws IOException {

scoketServer();

}

// 开启的tcp8888监听端口

public static void scoketServer() throws IOException {

ServerSocket server = new ServerSocket(8888);

while (true) {

// 未连通前线程阻塞,连通后开启一个socket通道线程后继续监听8888端口

Socket socket = server.accept();

System.out.println(socket.getInetAddress().getHostAddress()

+ "连接进入");

new SocketThread(socket).start();

}

}

}

// 一个服务器端口中监听多个客服端通道线程

class SocketThread extends Thread {

// 所有通道写入流的集合

private static ListPrintWriter list =new ArrayListPrintWriter();

private BufferedReader bufferedReader;

private PrintWriter printWriter;

public SocketThread(Socket socket) throws IOException {

this.bufferedReader = new BufferedReader(new InputStreamReader(socket

.getInputStream()));

this.printWriter = new PrintWriter(socket.getOutputStream());

list.add(printWriter);

}

@Override

public void run() {

String string = null;

while (true) {

try {

// 服务器在通道中读到的信息回显给客服端

string = bufferedReader.readLine();

System.out.println("客服端信息:" + string);

for(PrintWriter printWriter:list ){

printWriter.write("服务器回显:" + string + "\r\n");

printWriter.flush();

}

} catch (IOException e) {

}

}

}

}

客服端代码 可以用在局域网中用多台来连接测试

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStreamReader;

import java.io.PrintWriter;

import java.net.Socket;

import java.util.Scanner;

public class Test4Client {

public static Object obj = new Object();

// 客服端的主入口

public static void main(String[] args) throws IOException {

socketClient();

}

// 与服务器连通地址本机(127.0.0.1),局域网中其他机器是(服务器在局域网中的ip地址) 端口都是8888

public static void socketClient() throws IOException {

Socket socket = new Socket("127.0.0.1", 8888);

if (socket.isConnected()) {

// 如果连接成功了就开启写和读的进程

new writer(socket).start();

new read(socket).start();

} else {

System.out.println("服务器未开启");

}

}

}

// 写入到通道的线程

class writer extends Thread {

@SuppressWarnings("unused")

private Socket socket;

private PrintWriter printWriter;

private Scanner scanner = new Scanner(System.in);

private String str = null;

public writer(Socket socket) throws IOException {

this.socket = socket;

this.printWriter = new PrintWriter(socket.getOutputStream());

}

@Override

public void run() {

scanner.useDelimiter("\r\n");

while (true) {

System.out.print("请输入信息:");

// 产生扫描器的线程阻塞

str = scanner.next();

System.out.println("我说:"+str);

printWriter.write(str + "\r\n");

printWriter.flush();

try {

Thread.sleep(200);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}

// 从通道中读取的线程

class read extends Thread {

private Socket socket;

private BufferedReader bufferedReader;

private String str = null;

public read(Socket socket) throws IOException {

this.socket = socket;

this.bufferedReader = new BufferedReader(new InputStreamReader(socket

.getInputStream()));

}

@Override

public void run() {

while (true) {

try {

str = bufferedReader.readLine();

System.out.println(str);

} catch (IOException e) {

}

try {

Thread.sleep(200);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

}

如何用自己的电脑做服务器,用java语言写服务器程序

你指的服务器程序是指B/S(浏览器/服务器)

还是C/S(客户端/服务器)模式啊,不过不管你想写那种服务端程序首先都是要先安装JDK的,然后才开始开发,如果是B/S可以使用tomcat作为服务器,C/S的话就要自己写了

关于java,soap服务器端的代码怎么写

soapenv:Header/

soapenv:Body

api:getEmp

shopIdstring/shopId

/api:getEmp

/soapenv:Body

/soapenv:Envelope

这个时SOAP协议的标准报文格式,客户端只要发送这样的报文给支持SOAP协议的webservice服务器即可成功调用web service服务

服务端:部署服务只需要自己定义服务的接口和实现类,并用@webservice注解,通过endPoint类直接发布即可

关于java服务端怎么写和java写服务器端的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-23,除非注明,否则均为首码项目网原创文章,转载请注明出处。