main: update java demo and instructions

This commit is contained in:
dev
2021-04-24 17:43:26 +08:00
parent ff7acbea7f
commit 67264e58f6
155 changed files with 196071 additions and 26 deletions

216
JavaClientDemo/pom.xml Normal file
View File

@@ -0,0 +1,216 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.yc.inter</groupId>
<artifactId>vx-inter-client</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>vx-inter-client</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
<exclusion>
<groupId>com.vaadin.external.google</groupId>
<artifactId>android-json</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.5</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk16</artifactId>
<version>1.46</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.72</version>
</dependency>
<!-- 七牛获取token依赖包 -->
<dependency>
<groupId>com.qiniu</groupId>
<artifactId>qiniu-java-sdk</artifactId>
<version>[7.2.0, 7.2.99]</version>
<exclusions>
<exclusion>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.31</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.11.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.11.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.11.0</version>
</dependency>
<!-- protobuf插件 -->
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>3.8.0</version>
</dependency>
<dependency>
<groupId>io.protostuff</groupId>
<artifactId>protostuff-core</artifactId>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>io.protostuff</groupId>
<artifactId>protostuff-runtime</artifactId>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
<!--WebSocket核心依赖包-->
<dependency>
<groupId>org.java-websocket</groupId>
<artifactId>Java-WebSocket</artifactId>
<version>1.3.8</version>
</dependency>
<dependency>
<groupId>javax.websocket</groupId>
<artifactId>javax.websocket-api</artifactId>
<version>1.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>
com.yc.inter.websocket.client.WwWebSocketDemoClient
</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugin</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.1</version>
<configuration>
<skip>true</skip>
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>

View File

@@ -0,0 +1,28 @@
package com.yc.inter;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.Bean;
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
@SpringBootApplication
@EnableCaching
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
@Bean
public static PropertySourcesPlaceholderConfigurer placeholderConfigurer() {
PropertySourcesPlaceholderConfigurer c = new PropertySourcesPlaceholderConfigurer();
c.setIgnoreUnresolvablePlaceholders(true);
return c;
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}

View File

@@ -0,0 +1,52 @@
package com.yc.inter.common;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.List;
@Controller
@Component
@Order(1)
public class Interceptor implements HandlerInterceptor {
private Logger log = LoggerFactory.getLogger(this.getClass());
private List<Integer> errorCodeList = Arrays.asList(401, 404, 403, 500);
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
String origin = request.getHeader("Origin");
response.setHeader("Access-Control-Allow-Origin", origin);
response.setHeader("Access-Control-Allow-Methods", "*");
response.setHeader("Access-Control-Allow-Headers","Origin,Content-Type,Accept,token,X-Requested-With,X-Cookie");
response.setHeader("Access-Control-Allow-Credentials", "true");
response.setHeader("Access-Control-Allow-Methods", "GET,POST,PUT,OPTIONS,DELETE");
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
log.debug("拦截器正在进行后处理....");
HandlerInterceptor.super.postHandle(request, response, handler, modelAndView);
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
throws Exception {
log.debug("拦截器处理完成....");
HandlerInterceptor.super.afterCompletion(request, response, handler, ex);
}
}

View File

@@ -0,0 +1,28 @@
package com.yc.inter.common;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.Ordered;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import java.util.ArrayList;
import java.util.List;
@Configuration
public class SpringMvcConfig implements WebMvcConfigurer {
@Autowired
private Interceptor interceptor;
/**
* 自定义资源映射addResourceHandlers
*/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
WebMvcConfigurer.super.addResourceHandlers(registry);
}
}

View File

@@ -0,0 +1,22 @@
package com.yc.inter.websocket.client;
import com.yc.inter.websocket.linkserver.WwHookerApis;
import java.util.Scanner;
public class WwWebSocketDemoClient {
public static void main(String[] args) {
try {
WwHookerApis.getInstance().connect();
Scanner input = new Scanner(System.in);
String val = null; // 记录输入度的字符串
do {
val = input.next(); // 等待输入值
WwHookerApis.getInstance().sendMessage(val);
} while (!val.equals("#")); // 如果输入的值不版是#就继续输入
input.close(); // 关闭资源
}catch (Exception e){
e.printStackTrace();
}
}
}

View File

@@ -0,0 +1,122 @@
package com.yc.inter.websocket.client.utils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class PropertiesUtil {
private static Logger logger = LoggerFactory.getLogger(PropertiesUtil.class);
/**
* <p>描述根据相对路径获取一个Properties对象 </p>
* <p>日期2014-12-3 上午08:33:51 </p>
* @param filePath 文件相对于项目根路径的相对路径src/jdbc.properties
* @return 返回Properties对象可使用返回对象进行属性获取
*/
public static Properties getProperties(String filePath) {
Properties properties = null;
FileInputStream in = null;
try {
in = new FileInputStream(filePath);
properties = new Properties();
//加载文件
properties.load(in);
} catch (Exception e) {
logger.error("读取配置文件出错:"+e.getMessage(), e);
} finally {
try {
if (in != null) {
in.close();
}
} catch (IOException e) {
logger.error("关闭文件流出错:"+e.getMessage(), e);
}
}
return properties;
}
/**
*
* <p>描述根据相对路径和配置属性获取一个properties文件中某一个属性值 </p>
* <p>日期2014-12-3 上午08:40:54 </p>
* @param filePath 文件相对于项目根路径的相对路径src/jdbc.properties
* @param key 配置文件中的属性名字配置文件中存在键值对user=admin则传入user
* @return 返回目标配置文件中属性为参数传入key的属性值
*/
public static String getProperty(String filePath, String key){
Properties properties = getProperties(filePath);
String property = null;
if(properties!=null){
property = properties.getProperty(key);
}
return property;
}
/**
*
* <p>描述web环境读取配置文件 </p>
* <p>日期2014-12-22 下午03:09:24 </p>
* @param clz 类
* @param fileName 文件名,不用加后缀
* @return 返回配置文件对象
* @throws Exception
*/
public static Properties getProperties(Class<?> clz, String fileName) {
Properties properties = null;
InputStream input = null;
try {
input = clz.getClassLoader().getResourceAsStream(fileName+".properties");
properties = new Properties();
properties.load(input);
} catch (Exception e) {
logger.error("读取配置文件出错:"+e.getMessage(), e);
} finally{
try {
if (input != null) {
input.close();
}
} catch (IOException e) {
logger.error("关闭文件流出错:"+e.getMessage(), e);
}
}
return properties;
}
/**
*
* <p>描述web环境读取配置文件的属性值 </p>
* <p>日期2014-12-22 下午03:09:24 </p>
* @param clz 类
* @param fileName 文件名,不用加后缀
* @param key 要获取的键
* @return 返回属性值
* @throws Exception
*/
public static String getProperty(Class<?> clz, String fileName, String key) {
String property = null;
InputStream input = null;
try {
input = clz.getClassLoader().getResourceAsStream(fileName+".properties");
Properties properties = new Properties();
properties.load(input);
property = properties.getProperty(key);
} catch (Exception e) {
logger.error("读取配置文件出错:"+e.getMessage(), e);
} finally{
try {
if (input != null) {
input.close();
}
} catch (IOException e) {
logger.error("关闭文件流出错:"+e.getMessage(), e);
}
}
return property;
}
}

View File

@@ -0,0 +1,140 @@
package com.yc.inter.websocket.linkserver;
public class WwCmdConfigs {
public final static String wsHost = "ws://121.36.244.11:8099/im-server/client";
public final static String username = ""; // 插件首页显示的测试账号
public final static String password = ""; // 插件首页显示的测试账号下显示的数据两次MD532位大写
// 执行指令的插件端id
public final static Long wid = 0L; // 请输入插件首页显示的登录Wid
// 外部联系人
public final static Long outterId = 0L; // 通过3411获取到所有好友必填
// 内部联系人
public final static Long innerId = 0L; // 通过3410获取到的内部成员
// 被邀请的联系人
public final static Long invitedId = 0L; // 可以配置为好友或者成员
// 需要被删除人的id
public final static Long delOutterId = 0L; // 仅能配置为外部联系人3411获取
// 小程序id
public final static String weappid = "wx84dd50b996d3d862";
// 搜索的手机号码
public final static String phone = ""; // 需要添加的好友
// 测试的id可以是群聊也可以是单聊)
public final static Long convId = 0L; // 发送消息的群或者用户id
// 部门id
public final static Long deptId = 0L; // 348 获取的数据
public final static String CmdWw321 = "CmdWw321";
public final static String CmdWw331 = "CmdWw331";
public final static String CmdWw332 = "CmdWw332";
public final static String CmdWw333 = "CmdWw333";
public final static String CmdWw334 = "CmdWw334";
public final static String CmdWw335 = "CmdWw335";
public final static String CmdWw336 = "CmdWw336";
public final static String CmdWw337 = "CmdWw337";
public final static String CmdWw338 = "CmdWw338";
public final static String CmdWw341 = "CmdWw341";
public final static String CmdWw342 = "CmdWw342";
public final static String CmdWw343 = "CmdWw343";
public final static String CmdWw344 = "CmdWw344";
public final static String CmdWw345 = "CmdWw345";
public final static String CmdWw346 = "CmdWw346";
public final static String CmdWw347 = "CmdWw347";
public final static String CmdWw348 = "CmdWw348";
public final static String CmdWw349 = "CmdWw349";
public final static String CmdWw3410 = "CmdWw3410";
public final static String CmdWw3411 = "CmdWw3411";
public final static String CmdWw3412 = "CmdWw3412";
public final static String CmdWw3413 = "CmdWw3413";
public final static String CmdWw3414 = "CmdWw3414";
public final static String CmdWw3415 = "CmdWw3415";
public final static String CmdWw3416 = "CmdWw3416";
public final static String CmdWw3417 = "CmdWw3417";
public final static String CmdWw3418 = "CmdWw3418";
public final static String CmdWw3419 = "CmdWw3419";
public final static String CmdWw351 = "CmdWw351";
public final static String CmdWw352 = "CmdWw352";
public final static String CmdWw353 = "CmdWw353";
public final static String CmdWw354 = "CmdWw354";
public final static String CmdWw355 = "CmdWw355";
public final static String CmdWw356 = "CmdWw356";
public final static String CmdWw357 = "CmdWw357";
public final static String CmdWw358 = "CmdWw358";
public final static String CmdWw359 = "CmdWw359";
public final static String CmdWw3510 = "CmdWw3510";
public final static String CmdWw3511 = "CmdWw3511";
public final static String CmdWw3512 = "CmdWw3512";
public final static String CmdWw3513 = "CmdWw3513";
public final static String CmdWw3514 = "CmdWw3514";
public final static String CmdWw3515 = "CmdWw3515";
public final static String CmdWw3516 = "CmdWw3516";
public final static String CmdWw3517 = "CmdWw3517";
public final static String CmdWw3518 = "CmdWw3518";
public final static String CmdWw3519 = "CmdWw3519";
public final static String CmdWw3520 = "CmdWw3520";
public final static String CmdWw3521 = "CmdWw3521";
public final static String CmdWw3522 = "CmdWw3522";
public final static String CmdWw3523 = "CmdWw3523";
public final static String CmdWw3524 = "CmdWw3524";
public final static String CmdWw3525 = "CmdWw3525";
public final static String CmdWw3526 = "CmdWw3526";
public final static String CmdWw361 = "CmdWw361";
public final static String CmdWw362 = "CmdWw362";
public final static String CmdWw363 = "CmdWw363";
public final static String CmdWw364 = "CmdWw364";
public final static String CmdWw365 = "CmdWw365";
public final static String CmdWw366 = "CmdWw366";
public final static String CmdWw367 = "CmdWw367";
public final static String CmdWw368 = "CmdWw368";
public final static String CmdWw369 = "CmdWw369";
public final static String CmdWw3610 = "CmdWw3610";
public final static String CmdWw3611 = "CmdWw3611";
public final static String CmdWw3612 = "CmdWw3612";
public final static String CmdWw3613 = "CmdWw3613";
public final static String CmdWw3614 = "CmdWw3614";
public final static String CmdWw371 = "CmdWw371";
public final static String CmdWw372 = "CmdWw372";
public final static String CmdWw373 = "CmdWw373";
public final static String CmdWw374 = "CmdWw374";
public final static String CmdWw375 = "CmdWw375";
public final static String CmdWw376 = "CmdWw376";
public final static String CmdWw377 = "CmdWw377";
public final static String CmdWw378 = "CmdWw378";
public final static String CmdWw379 = "CmdWw379";
public final static String CmdWw3710 = "CmdWw3710";
public final static String CmdWw3711 = "CmdWw3711";
public final static String CmdWw3712 = "CmdWw3712";
public final static String CmdWw3713 = "CmdWw3713";
public final static String CmdWw3714 = "CmdWw3714";
public final static String CmdWw3715 = "CmdWw3715";
public final static String CmdWw3716 = "CmdWw3716";
public final static String CmdWw3717 = "CmdWw3717";
public final static String CmdWw3718 = "CmdWw3718";
public final static String CmdWw3719 = "CmdWw3719";
public final static String CmdWw3720 = "CmdWw3720";
public final static String CmdWw3721 = "CmdWw3721";
public final static String CmdWw3722 = "CmdWw3722";
public final static String CmdWw3723 = "CmdWw3723";
public final static String CmdWw381 = "CmdWw381";
public final static String CmdWw382 = "CmdWw382";
public final static String CmdWw383 = "CmdWw383";
public final static String CmdWw384 = "CmdWw384";
public final static String CmdWw385 = "CmdWw385";
public final static String CmdWw3101 = "CmdWw3101";
public final static String CmdWw3102 = "CmdWw3102";
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,61 @@
package com.yc.inter.websocket.linkserver;
import org.java_websocket.client.WebSocketClient;
import org.java_websocket.handshake.ServerHandshake;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.servlet.http.HttpSession;
import java.io.UnsupportedEncodingException;
import java.net.URI;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.charset.Charset;
import java.nio.charset.CharsetDecoder;
import java.util.ArrayList;
import java.util.List;
public class WwServerClient extends WebSocketClient {
private static Logger logger = LoggerFactory.getLogger(WwServerClient.class);
public WwServerClient(URI serverUri) {
super(serverUri);
}
@Override
public void onOpen(ServerHandshake serverHandshake) {
logger.info("WwServerClient握手。。。");
}
public void onMessage(String message) {
try {
logger.info("客户端接收服务端回调标识"+message);
}catch (Exception e){
e.printStackTrace();
}
}
@Override
public void onMessage(ByteBuffer message) {
try {
byte[] bytes = new byte[message.limit() - message.position()];
message.get(bytes);
WwHookerApis.getInstance().receiveMessage(bytes);
}catch (Exception e){
e.printStackTrace();
}
}
@Override
public void onClose(int i, String s, boolean b) {
WwHookerApis.getInstance().reconnect();
}
@Override
public void onError(Exception e) {
WwHookerApis.getInstance().reconnect();
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,39 @@
// Generated by the protocol buffer compiler. DO NOT EDIT!
// source: WxCmd.proto
package com.yc.inter.websocket.client.protobuf;
public final class WxCmdPb {
private WxCmdPb() {}
public static void registerAllExtensions(
com.google.protobuf.ExtensionRegistry registry) {
}
public static com.google.protobuf.Descriptors.FileDescriptor
getDescriptor() {
return descriptor;
}
private static com.google.protobuf.Descriptors.FileDescriptor
descriptor;
static {
java.lang.String[] descriptorData = {
"\n\013WxCmd.proto\022\005protoB5\n\037com.yc.inter.web" +
"socket.protobufB\007WxCmdPbZ\t.;WwCmdPbb\006pro" +
"to3"
};
com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
new com.google.protobuf.Descriptors.FileDescriptor. InternalDescriptorAssigner() {
public com.google.protobuf.ExtensionRegistry assignDescriptors(
com.google.protobuf.Descriptors.FileDescriptor root) {
descriptor = root;
return null;
}
};
com.google.protobuf.Descriptors.FileDescriptor
.internalBuildGeneratedFileFrom(descriptorData,
new com.google.protobuf.Descriptors.FileDescriptor[] {
}, assigner);
}
// @@protoc_insertion_point(outer_class_scope)
}

View File

@@ -0,0 +1,31 @@
debug: true
server:
port: 8081
servlet:
session:
timeout: 86400
context-path: /wwclient
tomcat:
max-http-post-size: -1
spring:
jackson:
time-zone: GMT+8
mvc:
view:
suffix: /WEB-INF/jsp/
throw-exception-if-no-handler-found: true
resources:
add-mappings: true
mybatis:
mapper-locations:
- classpath:mapper/*/*.xml
#实体扫描多个package用逗号或者分号分隔
type-aliases-package: com.yc.inter.**.entity
logging:
config: classpath:logback-spring.xml

View File

@@ -0,0 +1,11 @@
#服务器IP
server_ip=106.12.3.102
#server_ip=127.0.0.1
#服务器端口
server_port=8092
#server_port=8086
#服务器工程名称
server_item=inter
#websocket 名称
server_name=wwserver

View File

@@ -0,0 +1,53 @@
### set log levels - for more verbose logging change 'info' to 'debug' ###
log4j.rootLogger=debug, stdout,R
### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
# %d{ABSOLUTE} %5p %c:%L - %m%n
#log4j.appender.R.File=d:/log4j.log
#linux
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=/web/fomstsprobe_cq/tomcat-fomstsprobe-38080/logs/log4j.log
#log4j.appender.R.MaxFileSize=1000KB
#log4j.appender.R.MaxBackupIndex=10
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
# SqlMap logging configuration...
log4j.logger.org.springframework=ERROR
log4j.logger.org.apache.ibatis=DEBUG
log4j.logger.org.mybatis.spring=INFO
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=INFO
log4j.logger.java.sql.PreparedStatement=INFO
log4j.logger.java.sql.ResultSet=DEBUG
log4j.logger.org.quartz.core=INFO
log4j.logger.org.quartz.impl.jdbcjobstore.StdRowLockSemaphore=INFO
log4j.logger.org.hibernate=error
log4j.logger.com.zaxxer.hikari.pool = INFO
### log HQL query parser activity
#log4j.logger.org.hibernate.hql.ast.AST=debug
### log just the SQL
#log4j.logger.org.hibernate.SQL=debug
### log JDBC bind parameters ###
log4j.logger.org.hibernate.type=debug
### log schema export/update ###
log4j.logger.org.hibernate.tool.hbm2ddl=debug

View File

@@ -0,0 +1,86 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL如果设置为WARN则低于WARN的信息都不会输出 -->
<!-- scan:当此属性设置为true时配置文件如果发生改变将会被重新加载默认值为true -->
<!-- scanPeriod:设置监测配置文件是否有修改的时间间隔如果没有给出时间单位默认单位是毫秒。当scan为true时此属性生效。默认的时间间隔为1分钟。 -->
<!-- debug:当此属性设置为true时将打印出logback内部日志信息实时查看logback运行状态。默认值为false。 -->
<configuration scan="true" scanPeriod="10 seconds">
<!-- 动态日志级别 -->
<jmxConfigurator/>
<!--<include resource="org/springframework/boot/logging/logback/base.xml" />-->
<!-- 自定义名字 -->
<contextName>veteran-admin</contextName>
<!-- 定义日志位置变量,定义变量后,可以使“${}”来使用变量。 -->
<property name="LOG_HOME" value="D://logs" />
<!--<springProperty scope="context" name="LOG_HOME" source="logging.path"/>
<springProperty scope="context" name="LOG_LEVEL" source="logging.level"/>-->
<!--输出到控制台-->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<!--<Pattern>%d{yyyy-MM-dd HH:mm:ss} [%class]-[%-5level] %logger{50} - %msg%n</Pattern>-->
<Pattern>%d{yyyy-MM-dd HH:mm:ss} [%logger{50}]-[%-5level] %msg%n</Pattern>
<!-- 设置字符集 -->
<charset>UTF-8</charset>
</encoder>
</appender>
<!--输出到文件-->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文件的路径及文件名 -->
<file>${LOG_HOME}/log.log</file>
<!--日志文件输出格式-->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%logger{50}]-[%-5level] %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 每天日志归档路径以及格式 -->
<fileNamePattern>${LOG_HOME}/log-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文件保留天数-->
<maxHistory>15</maxHistory>
</rollingPolicy>
</appender>
<!--
<logger>用来设置某一个包或者具体的某一个类的日志打印级别、
以及指定<appender>。<logger>仅有一个name属性
一个可选的level和一个可选的addtivity属性。
name:用来指定受此logger约束的某一个包或者具体的某一个类。
level:用来设置打印级别大小写无关TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF
还有一个特俗值INHERITED或者同义词NULL代表强制执行上级的级别。
如果未设置此属性那么当前logger将会继承上级的级别。
addtivity:是否向上级logger传递打印信息。默认是true,建议配置为false不传递,如果传递则本身打印一次日志,root打印一次日志。
-->
<!--<logger name="org.springframework.web" level="info"/>-->
<!--<logger name="org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor" level="INFO"/>-->
<!--
使用mybatis的时候sql语句是debug下才会打印而这里我们只配置了info所以想要查看sql语句的话有以下两种操作
第一种把<root level="info">改成<root level="DEBUG">这样就会打印sql不过这样日志那边会出现很多其他消息
第二种就是单独给dao下目录配置debug模式代码如下这样配置sql语句会打印其他还是正常info级别
-->
<logger name="com.zaxxer.hikari.pool" level="debug" additivity="false"/>
<logger name="org.springframework" level="debug" additivity="false"/>
<logger name="org.hibernate" level="debug" additivity="false"/>
<!--
root节点是必选节点用来指定最基础的日志输出级别只有一个level属性
level:用来设置打印级别大小写无关TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF
不能设置为INHERITED或者同义词NULL。默认是DEBUG
可以包含零个或多个元素标识这个appender将会添加到这个logger。
-->
<root level="debug">
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE" />
</root>
</configuration>

View File

@@ -0,0 +1,31 @@
debug: true
server:
port: 8081
servlet:
session:
timeout: 86400
context-path: /wwclient
tomcat:
max-http-post-size: -1
spring:
jackson:
time-zone: GMT+8
mvc:
view:
suffix: /WEB-INF/jsp/
throw-exception-if-no-handler-found: true
resources:
add-mappings: true
mybatis:
mapper-locations:
- classpath:mapper/*/*.xml
#实体扫描多个package用逗号或者分号分隔
type-aliases-package: com.yc.inter.**.entity
logging:
config: classpath:logback-spring.xml

View File

@@ -0,0 +1,11 @@
#服务器IP
server_ip=106.12.3.102
#server_ip=127.0.0.1
#服务器端口
server_port=8092
#server_port=8086
#服务器工程名称
server_item=inter
#websocket 名称
server_name=wwserver

View File

@@ -0,0 +1,53 @@
### set log levels - for more verbose logging change 'info' to 'debug' ###
log4j.rootLogger=debug, stdout,R
### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
# %d{ABSOLUTE} %5p %c:%L - %m%n
#log4j.appender.R.File=d:/log4j.log
#linux
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=/web/fomstsprobe_cq/tomcat-fomstsprobe-38080/logs/log4j.log
#log4j.appender.R.MaxFileSize=1000KB
#log4j.appender.R.MaxBackupIndex=10
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss} [%c]-[%p] %m%n
# SqlMap logging configuration...
log4j.logger.org.springframework=ERROR
log4j.logger.org.apache.ibatis=DEBUG
log4j.logger.org.mybatis.spring=INFO
log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=DEBUG
log4j.logger.com.ibatis.common.jdbc.ScriptRunner=DEBUG
log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=DEBUG
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=INFO
log4j.logger.java.sql.PreparedStatement=INFO
log4j.logger.java.sql.ResultSet=DEBUG
log4j.logger.org.quartz.core=INFO
log4j.logger.org.quartz.impl.jdbcjobstore.StdRowLockSemaphore=INFO
log4j.logger.org.hibernate=error
log4j.logger.com.zaxxer.hikari.pool = INFO
### log HQL query parser activity
#log4j.logger.org.hibernate.hql.ast.AST=debug
### log just the SQL
#log4j.logger.org.hibernate.SQL=debug
### log JDBC bind parameters ###
log4j.logger.org.hibernate.type=debug
### log schema export/update ###
log4j.logger.org.hibernate.tool.hbm2ddl=debug

View File

@@ -0,0 +1,86 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL如果设置为WARN则低于WARN的信息都不会输出 -->
<!-- scan:当此属性设置为true时配置文件如果发生改变将会被重新加载默认值为true -->
<!-- scanPeriod:设置监测配置文件是否有修改的时间间隔如果没有给出时间单位默认单位是毫秒。当scan为true时此属性生效。默认的时间间隔为1分钟。 -->
<!-- debug:当此属性设置为true时将打印出logback内部日志信息实时查看logback运行状态。默认值为false。 -->
<configuration scan="true" scanPeriod="10 seconds">
<!-- 动态日志级别 -->
<jmxConfigurator/>
<!--<include resource="org/springframework/boot/logging/logback/base.xml" />-->
<!-- 自定义名字 -->
<contextName>veteran-admin</contextName>
<!-- 定义日志位置变量,定义变量后,可以使“${}”来使用变量。 -->
<property name="LOG_HOME" value="D://logs" />
<!--<springProperty scope="context" name="LOG_HOME" source="logging.path"/>
<springProperty scope="context" name="LOG_LEVEL" source="logging.level"/>-->
<!--输出到控制台-->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<!--<Pattern>%d{yyyy-MM-dd HH:mm:ss} [%class]-[%-5level] %logger{50} - %msg%n</Pattern>-->
<Pattern>%d{yyyy-MM-dd HH:mm:ss} [%logger{50}]-[%-5level] %msg%n</Pattern>
<!-- 设置字符集 -->
<charset>UTF-8</charset>
</encoder>
</appender>
<!--输出到文件-->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文件的路径及文件名 -->
<file>${LOG_HOME}/log.log</file>
<!--日志文件输出格式-->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%logger{50}]-[%-5level] %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 每天日志归档路径以及格式 -->
<fileNamePattern>${LOG_HOME}/log-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文件保留天数-->
<maxHistory>15</maxHistory>
</rollingPolicy>
</appender>
<!--
<logger>用来设置某一个包或者具体的某一个类的日志打印级别、
以及指定<appender>。<logger>仅有一个name属性
一个可选的level和一个可选的addtivity属性。
name:用来指定受此logger约束的某一个包或者具体的某一个类。
level:用来设置打印级别大小写无关TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF
还有一个特俗值INHERITED或者同义词NULL代表强制执行上级的级别。
如果未设置此属性那么当前logger将会继承上级的级别。
addtivity:是否向上级logger传递打印信息。默认是true,建议配置为false不传递,如果传递则本身打印一次日志,root打印一次日志。
-->
<!--<logger name="org.springframework.web" level="info"/>-->
<!--<logger name="org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor" level="INFO"/>-->
<!--
使用mybatis的时候sql语句是debug下才会打印而这里我们只配置了info所以想要查看sql语句的话有以下两种操作
第一种把<root level="info">改成<root level="DEBUG">这样就会打印sql不过这样日志那边会出现很多其他消息
第二种就是单独给dao下目录配置debug模式代码如下这样配置sql语句会打印其他还是正常info级别
-->
<logger name="com.zaxxer.hikari.pool" level="debug" additivity="false"/>
<logger name="org.springframework" level="debug" additivity="false"/>
<logger name="org.hibernate" level="debug" additivity="false"/>
<!--
root节点是必选节点用来指定最基础的日志输出级别只有一个level属性
level:用来设置打印级别大小写无关TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF
不能设置为INHERITED或者同义词NULL。默认是DEBUG
可以包含零个或多个元素标识这个appender将会添加到这个logger。
-->
<root level="debug">
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE" />
</root>
</configuration>

View File

@@ -0,0 +1,118 @@
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<excludeFolder url="file://$MODULE_DIR$/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-thymeleaf:2.0.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.0.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.0.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.0.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.0.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" />
<orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.10.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.10.0" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.25" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: org.yaml:snakeyaml:1.19" level="project" />
<orderEntry type="library" name="Maven: org.thymeleaf:thymeleaf-spring5:3.0.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.thymeleaf:thymeleaf:3.0.9.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.attoparser:attoparser:2.0.4.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.unbescape:unbescape:1.1.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.25" level="project" />
<orderEntry type="library" name="Maven: org.thymeleaf.extras:thymeleaf-extras-java8time:3.0.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.0.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.0.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.9.5" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.5" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.9.5" level="project" />
<orderEntry type="library" name="Maven: org.hibernate.validator:hibernate-validator:6.0.9.Final" level="project" />
<orderEntry type="library" name="Maven: javax.validation:validation-api:2.0.1.Final" level="project" />
<orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.2.Final" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml:classmate:1.3.4" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-web:5.0.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-beans:5.0.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.0.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-aop:5.0.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context:5.0.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-expression:5.0.5.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:2.0.1.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:2.0.1.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:2.0.1.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.4.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:1.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.ow2.asm:asm:5.0.4" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:3.9.1" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:2.15.0" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy:1.7.11" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy-agent:1.7.11" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:2.6" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-library:1.3" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.5.0" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-core:5.0.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.0.5.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:5.0.5.RELEASE" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.xmlunit:xmlunit-core:2.5.1" level="project" />
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-starter:1.3.5" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.0.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: com.zaxxer:HikariCP:2.7.8" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.0.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.mybatis.spring.boot:mybatis-spring-boot-autoconfigure:1.3.5" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis:3.4.6" level="project" />
<orderEntry type="library" name="Maven: org.mybatis:mybatis-spring:1.3.3" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.0.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: javax.annotation:javax.annotation-api:1.3.2" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:8.5.29" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:8.5.29" level="project" />
<orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:8.5.29" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.tomcat.embed:tomcat-embed-jasper:8.5.29" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: org.eclipse.jdt:ecj:3.12.3" level="project" />
<orderEntry type="library" name="Maven: org.projectlombok:lombok:1.16.20" level="project" />
<orderEntry type="library" name="Maven: commons-lang:commons-lang:2.6" level="project" />
<orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.6" level="project" />
<orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk16:1.46" level="project" />
<orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.31" level="project" />
<orderEntry type="library" name="Maven: com.qiniu:qiniu-java-sdk:7.2.29" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.squareup.okhttp3:okhttp:3.14.4" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: com.squareup.okio:okio:1.17.2" level="project" />
<orderEntry type="library" scope="RUNTIME" name="Maven: mysql:mysql-connector-java:5.1.46" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-redis:2.0.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-redis:2.0.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-keyvalue:2.0.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:2.0.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-tx:5.0.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-oxm:5.0.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-context-support:5.0.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: io.lettuce:lettuce-core:5.0.3.RELEASE" level="project" />
<orderEntry type="library" name="Maven: io.projectreactor:reactor-core:3.1.6.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.reactivestreams:reactive-streams:1.0.2" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-common:4.1.23.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-transport:4.1.23.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-buffer:4.1.23.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-resolver:4.1.23.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-handler:4.1.23.Final" level="project" />
<orderEntry type="library" name="Maven: io.netty:netty-codec:4.1.23.Final" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.11.0" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.11.0" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.11.0" level="project" />
<orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java:3.8.0" level="project" />
<orderEntry type="library" name="Maven: io.protostuff:protostuff-core:1.4.0" level="project" />
<orderEntry type="library" name="Maven: io.protostuff:protostuff-api:1.4.0" level="project" />
<orderEntry type="library" name="Maven: io.protostuff:protostuff-runtime:1.4.0" level="project" />
<orderEntry type="library" name="Maven: io.protostuff:protostuff-collectionschema:1.4.0" level="project" />
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-websocket:2.0.1.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-messaging:5.0.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.springframework:spring-websocket:5.0.5.RELEASE" level="project" />
<orderEntry type="library" name="Maven: org.java-websocket:Java-WebSocket:1.3.8" level="project" />
<orderEntry type="library" scope="PROVIDED" name="Maven: javax.websocket:javax.websocket-api:1.1" level="project" />
</component>
</module>

View File

@@ -9,7 +9,7 @@
### 全部功能文档列表,持续更新
当前适配版本从2.8.12 ~ **3.1.0**最新版
当前适配版本从2.8.12 ~ **3.1.6**最新版
**主要功能列表**
@@ -36,24 +36,6 @@
> - 接收消息:包括但不限于文字、图片、语音、视频、文件、小程序、链接、地理位置等
> - 文件消息自动下载:图片、语音、文件、视频
- 企业微信与微信公用
> - Activity
> - 文件操作(写入、读取)
> - 数据库操作(增删改查)
- 基础核心功能
> - APK自动解析
> - 异步批处理
> - 二级缓存
> - 网络请求
> - 重试策略
> - 文件下载
> - 自动缓存
> - 反射查找
> - silk音频编解码
当然还有更多的功能不仅限于上述更多可以查阅我针对企业微信的xposed学习的成果这些成果的部分我将在后续通过讲解并上传
@@ -61,21 +43,18 @@
如果需要查阅具体接口文档可以与我联系申请查看,我将毫无保留的开放设计理念和文档
### SDK已经可以使用了
以下是根据SDK开发出来的demo欢迎交流
![demo-1](sources/demo-1.png)
![demo-2](sources/demo-2.jpeg)
### 注意:
为了避免某些xxx风险我只是持续做一些分享但并不会将完整代码上传我所上传的基础核心基本上你都可以在我所写的文章及有Android基础之上一步一步的去实现
### 直接玩儿教程
### 联系我
如果你在学习过程中遇到问题你可以直接提交issue或者直接联系我
QQ交流群**596725067**
请添加时备注xposedwework+姓
请添加时备注xposed/wework+姓
<img src="sources/qq_group_chat_qr_code.png" width="250" height="256"/>

76
README_Java.md Normal file
View File

@@ -0,0 +1,76 @@
###前期准备
1、对xposed有一定的了解知道如何安装及试用
2、由于做了版本自动化适配99%功能通过自动查找方式匹配,所以需要你去下载[官网的【安装包】](https://work.weixin.qq.com/#indexDownload)
3、下载与官网APK版本一致的[release测玩包]()测玩包支持5.0及以上的**【真机】**、**【模拟器】**、**【各类云手机】**
###如何测玩
1、安装好[release测玩包]()后重启手机如果看到Logo下方显示**【准备就绪】** 即视为安装好
<img src="sources/trail_000.png" width="220" height="400"/>
2、保证当前SELinux处于Premissive如果非Premissive需点击左上角设置
<img src="sources/trail_001.png" width="220" height="400"/>
3、打开企微并登陆重新切换至[release测玩包]()界面,如下图,点击激活即可
<img src="sources/trail_002.png" width="220" height="380"/>
4、下载项目中的 [JavaClientDemo](JavaClientDemo) ,准备好后需要你在[WwCmdConfigs](JavaClientDemo/src/main/java/com/yc/inter/websocket/linkserver/WwCmdConfigs.java)中配置三个重要参数
- username: 即为release包界面上显示的【测试账号的值】
- password: 几位release包界面上显示的【测试账号的值】两次MD5注意在第一次MD5后需要使用32位大写再次MD5取最终的32位大写MD5作为密码
- wid为release包界面上显示的【登录Wid】
上述数据配置好后可以直接在IDE运行结果如下即表示初步配置成功
<img src="sources/trail_java_000.png" width="440" height="220"/>
5、接下来是配置其他参数的问题
- 5.1 如果是需要测试创建群聊或者外部群聊相关则需要配置outterId、innerId这两个参数可以分别在控制台输入3411 及 3410获取
- 5.2 测试被邀请好友则可以通过3411或者3410获取之后得到一个用户信息配置即可
- 5.3 如果需要测试删除好友则需通过3411获取外部联系人选择一个即可
- 5.4 测试添加好友则需要配置手机号码
- 5.5 测试群聊相关则可以通过配置好上述数据之后重启client通过指令355创建一个返回的数据中会有群聊id或者通过353获取已有的群聊
6、关于指令的执行测玩
> 目前是配置固定的参数测试时只需要发送对应文档目录的指令即可指令执行方从3.3.1开始,目录与指令对应关系为:
> 3.3.1 对应 331
>
> 3.3.2 对应 332
>
> ...
>
> 3.6.6 对应 366
>
> ...
>
> 以此类推
>
> 建议demo里面不要先测试 退出群聊和解散群聊这个可以在所有功能测试完毕之后再来验证因为demo参数是固定配置的群聊id
<img src="sources/trail_java_001.png" width="440" height="220"/>
关于每个指令集是代表什么功能,可以直接申请[文档查看权限](https://docs.qq.com/doc/DS2JLYVpOY2ZJRFJI),在申请权限时请写明备注,无备注不会处理,或者可以通过一下群与我们交流
### 与我们进行交流
如果你在学习过程中遇到问题你可以直接提交issue或者直接联系我
QQ交流群**596725067**
请添加时备注xposed/wework+姓
<img src="sources/qq_group_chat_qr_code.png" width="250" height="256"/>

View File

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

View File

Before

Width:  |  Height:  |  Size: 6.7 KiB

After

Width:  |  Height:  |  Size: 6.7 KiB

View File

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

View File

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

Before

Width:  |  Height:  |  Size: 8.9 KiB

After

Width:  |  Height:  |  Size: 8.9 KiB

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

Some files were not shown because too many files have changed in this diff Show More