java如何写接口给别人调用

更新时间:2023-07-10 05:48:27 阅读: 评论:0

java如何写接⼝给别⼈调⽤
计算机语⾔分类有很多,如C、C++、C#、Java、Php、Python等等,她们有各⾃的特性及擅长的领域,但她们各⾃⼜不是全能的。在⼀个稍微⼤型⼀点的项⽬都会⽤到多种语⾔共同完成,那么这些编程语⾔如何进⾏通信呢。什么意思呢,就是⽐如说我Java写的⼀个⽅法,其他编程语⾔要怎么去调⽤呢?这就是本⽂要探讨的问题了。
⼀般来说,⽅法层⾯的编程语⾔通信⽤的是⽹络接⼝形式,只暴露出形参和结果供别⼈调⽤。接⼝⼀般分为接⼝定义者和接⼝调⽤者,定义者可以规定接收参数的类型及返回形式,⽽接⼝定义者则只能完全按照接⼝定义者规定的参数进⾏访问。就叫是我们所说的webService(⽹络服务)。
以前的做法是利⽤XML作接⼝格式定义,然后通过Http做通讯和请求,如⼤名⿍⿍的SOAP,其实现在也是的,只不过现在流⾏RestFul风格的Rest接⼝形式,但⽤的还是
XML+HTTP,那这两者有啥区别呢?最⼤的区别就是SOAP返回的主要是XML格式,有时还需要附带⼀些辅助⽂件,⽽Rest则还可以返回JSON类型的字符串,减少了很多繁乱的XML 标签。本⽂就以Java为例,⽤她写⼀个接⼝,并让其他⼈去调⽤,以此来简单展⽰接⼝调⽤是怎么样⼀个过程。
步骤:谦让的近义词
1、本机装有Java JDK运⾏环境及编程IDE(如Myeclip)
2、建⽴⼀个maven项⽬,⽤以下载jar包,项⽬结构如下:
l⽂件内容如下:
冷静下来1<project xmlns="maven.apache/POM/4.0.0" xmlns:xsi="www.w3/2001/XMLSchema-instance"
2  xsi:schemaLocation="maven.apache/POM/4.0.0 maven.apache/maven-v4_0_0.xsd">俊杰廉悍
3  <modelVersion>4.0.0</modelVersion>
4  <groupId>ws</groupId>
5  <artifactId>restful</artifactId>
6  <packaging>war</packaging>
7  <version>0.0.1-SNAPSHOT</version>
8  <name>restful-rver</name>
9  <url>maven.apache</url>
10  <properties>
11        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
12        <jery.version>2.6</jery.version>
13        <jery-spring.version>2.23.1</jery-spring.version>
石榴吃法14        <spring.version>4.2.7.RELEASE</spring.version>
15        <rvlet-api-version>3.1.0</rvlet-api-version>
16        <logback.version>1.1.1</logback.version>
17        <jcloverslf4j.version>1.7.6</jcloverslf4j.version>
18    </properties>
19  <dependencies>
20    <dependency>
21      <groupId>junit</groupId>
22      <artifactId>junit</artifactId>
23      <version>3.8.1</version>
24      <scope>test</scope>
24      <scope>test</scope>
25    </dependency>
26
27    <dependency>
28            <groupId>org.</groupId>
29            <artifactId>jery-spring3</artifactId>
30            <version>${jery-spring.version}</version>
31            <exclusions>
32                <exclusion>
33                    <groupId>org.springframework</groupId>
34                    <artifactId>spring-core</artifactId>
35                </exclusion>
36                <exclusion>
37                    <groupId>org.springframework</groupId>
38                    <artifactId>spring-web</artifactId>
39                </exclusion>
40                <exclusion>
41                    <groupId>org.springframework</groupId>
42                    <artifactId>spring-beans</artifactId>
43                </exclusion>
44            </exclusions>
45        </dependency>
46
47        <dependency>
48            <groupId>org.ainers</groupId>
49            <artifactId>jery-container-rvlet</artifactId>
50            <version>${jery-spring.version}</version>自强名言
51        </dependency>
52        <dependency>
53            <groupId>org.ainers</groupId>
54            <artifactId>jery-container-rvlet-core</artifactId>
55            <version>${jery-spring.version}</version>
56        </dependency>
57
58        <dependency>
59            <groupId>org.dia</groupId>
60            <artifactId>jery-media-json-jackson</artifactId>
61            <version>${jery.version}</version>
62        </dependency>
63        <dependency>
64            <groupId>org.dia</groupId>
65            <artifactId>jery-media-multipart</artifactId>
66            <version>${jery.version}</version>
67        </dependency>
68        <dependency>
69            <groupId>org.</groupId>
70            <artifactId>jery-entity-filtering</artifactId>
71            <version>${jery.version}</version>
72        </dependency>
73
74        <!-- Spring4.2 dependencies -->
75        <dependency>
76            <groupId>org.springframework</groupId>
77            <artifactId>spring-core</artifactId>
78            <version>${spring.version}</version>
79        </dependency>
80
81        <dependency>
82            <groupId>org.springframework</groupId>
83            <artifactId>spring-context</artifactId>
84            <version>${spring.version}</version>
85        </dependency>
86
87        <dependency>
88            <groupId>org.springframework</groupId>
89            <artifactId>spring-web</artifactId>
89            <artifactId>spring-web</artifactId>
90            <version>${spring.version}</version>
91        </dependency>
92
93        <dependency>
94            <groupId>org.springframework</groupId>
95            <artifactId>spring-jdbc</artifactId>
96            <version>${spring.version}</version>
97        </dependency>
98
99        <dependency>
100            <groupId>org.springframework</groupId>
101            <artifactId>spring-tx</artifactId>
喜迎十九作文102            <version>${spring.version}</version>
103        </dependency>
104        <dependency>
105            <groupId>org.springframework</groupId>
106            <artifactId>spring-test</artifactId>
107            <version>${spring.version}</version>
108            <scope>test</scope>放假作文
109        </dependency>
110
111        <dependency>
112            <groupId>javax.rvlet</groupId>
113            <artifactId>javax.rvlet-api</artifactId>
114            <version>${rvlet-api-version}</version>
115            <scope>provided</scope>
116        </dependency>
117
118        <!-- Logback dependencies -->
119        <dependency>
120            <groupId>ch.qos.logback</groupId>
121            <artifactId>logback-classic</artifactId>
122            <version>${logback.version}</version>
123        </dependency>
124        <dependency>
125            <groupId>org.slf4j</groupId>
126            <artifactId>jcl-over-slf4j</artifactId>
127            <version>${jcloverslf4j.version}</version>
128        </dependency>
129
130  </dependencies>
131  <build>
132    <finalName>restful</finalName>
133  </build>
134</project>
l内容如下:
1<?xml version="1.0" encoding="UTF-8"?>
2<beans xmlns="www.springframework/schema/beans"
3      xmlns:xsi="www.w3/2001/XMLSchema-instance"
4      xmlns:context="www.springframework/schema/context"
5      xmlns:tx="www.springframework/schema/tx"
6      xsi:schemaLocation="www.springframework/schema/beans www.springframework/schema/beans/spring-beans.xsd
7        www.springframework/schema/context www.springframework/schema/context/spring-context-4.1.xsd">
8
9    <context:component-scan ba-package="com.kendy.*"></context:component-scan>
10</beans>
l则主要配置采⽤的容器、⽇志管理及拦截器,拦截器可以实现到达请求郑涛之前进⾏⾝份认证,踢除没有访问资格的请求,⽽rest项⽬⼀般是⽤Jery容器。配置如下:
(kendy只是我的英⽂名,你们可以⾃⼰定义路径)
1<?xml version="1.0" encoding="UTF-8"?>
2<web-app xmlns:javaee="/xml/ns/javaee" xmlns:web="/xml/ns/javaee/web-app_2_5.xsd">
3  <display-name></display-name>
4  <context-param>
5    <param-name>contextConfigLocation</param-name>
6    <param-value>l</param-value>
7  </context-param>
8  <listener>
9    <listener-class>
10            org.t.ContextLoaderListener
11        </listener-class>
12  </listener>
13  <rvlet>
14    <rvlet-name>jery-rlvet</rvlet-name>
15    <rvlet-class>
16            org.glassfish.jery.rvlet.ServletContainer
17        </rvlet-class>
18    <init-param>
19      <param-name>javax.ws.rs.Application</param-name>
20      <param-value>com.kendy.filter.RestJaxRsApplication</param-value>
21    </init-param>
22    <load-on-startup>1</load-on-startup>
23  </rvlet>
24  <rvlet-mapping>
25    <rvlet-name>jery-rlvet</rvlet-name>
26    <url-pattern>/*</url-pattern>
27  </rvlet-mapping>
28</web-app>
6 拦截器如下:
1import java.io.IOException;
2import java.io.InputStream;
3import java.util.List;
4import java.util.Map.Entry;
5
6import javax.ws.rs.WebApplicationException;
7import javax.ainer.ContainerRequestContext;
8import javax.ainer.ContainerRequestFilter;
9import javax.MultivaluedMap;
10import javax.Respon.Status;
11import javax.Provider;
12
13/**
14 * 拦截请求
15 */
16@Provider
17public class MyFilter implements ContainerRequestFilter {
18
19  @Override
20  public void filter(ContainerRequestContext context) throws IOException { 21
22    //打印出所有请求头
23    MultivaluedMap<String, String> map =  Headers();
24    for(Entry<String, List<String>> entry : Set()){
25    String key = Key();
对话的英语26    List<String> valueList = Value();
27    String values = String();
28    System.out.println(key + ":"+values.substring(1,values.length()-1));
29    }
7 注册Jery容器所要管理的类

本文发布于:2023-07-10 05:48:27,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1075321.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:定义   请求   类型   拦截器   参数
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图