Java中的Base64编码和解码

这篇文章将讨论使用纯 Java、Guava 和 Apache Commons 进行 Base64 编码和解码。 Base64 是一组类似的二进制到文本的编码方案,通过将其转换为 ASCII 字符串格式来表示二进制数据 radix-64 表示。每个 Base64 digit 正好代表 6 位数据,也就是说 3 个字节可以用 4 个 6 位来表示 Base64 位数。

龙生   19 Jun 2023
View Details

JAX-WS RI组件开发基于JAX-WS规范的WebService服务入门程序

你如果接触过最简单的webservice程序,你就会会知道,模拟一个客户端去调用服务端的服务,需要知道的参数有:
wsdl文件路径
提供webservice服务的服务接口源文件(.java)
服务接口实现类中@WebService注解上targetNamespace属性的值(wsdl文件中可以得知)
服务接口实现类中@WebService注解上serviceName属性的值(wsdl文件中可以得知)
因此,获取起来相对麻烦。

而JDK1.6自带了wsimport.exe工具,就是专门为了方便客户端获取服务端文件以及调用webservice服务的。
该工具位于JDK安装目录的lib目录下。

使用方法:
进入命令提示符界面
切换到JDK安装路径的lib目录下
输入wsimport, 回车,就可以看到该工具的参数,根据需要选择,通常是 -keep 表示保存文件 -s 保留源文件

格式:wsimport -keep -s 保留源文件的路径 wsdl文件路径

龙生   19 Jun 2023
View Details

设置、查看分支的上游

设置上游分支: 方式一(适用远程分支已存在): 用参数 -u 或 --set-upstream-to 设置上游 $ git branch --set-upstream-to=origin/<远程分支> <本地分支> 方式二(适用远程分支不存在): 上传本地分支到远程,同是把上传后的远程分支设置为本地分支的上游分支: git push set-upstream origin HEAD:<远程分支>  取消分支上游: $ git branch --unset-upstream 查看上游: 可以通过git status 、 git checkout <分支>、git branch -vv命令查看 如下图框中就是当前分支的上游。 from:https://blog.csdn.net/xjj1314/article/details/111269837

龙生   19 Jun 2023
View Details

spring boot 文件上传大小限制

错误信息 :   Spring Boot:The field file exceeds its maximum permitted size of 1048576 bytes.   解决方法一:在启动类添加如下代码: @Bean public MultipartConfigElement multipartConfigElement() {   MultipartConfigFactory factory = new MultipartConfigFactory();   //单个文件最大   factory.setMaxFileSize("10240KB"); //KB,MB   // 设置总上传数据总大小   factory.setMaxRequestSize("102400KB");   return factory.createMultipartConfig(); }   解决方法二:根据spring boot 版本不同在application文件添加不同的配置 Spring Boot 1.3 或之前的版本,配置: multipart.maxFileSize = 100Mb multipart.maxRequestSize=150Mb Spring Boot 1.4 版本后配置更改为:   spring.http.multipart.maxFileSize = 100Mb   spring.http.multipart.maxRequestSize = 150Mb Spring Boot 2.0 之后的版本配置修改为: 单位Mb改为MB了 spring.servlet.multipart.max-file-size = 100MB spring.servlet.multipart.max-request-size = 150MB     ************************************************************************************************** multipart.maxFileSize=10Mb是设置单个文件的大小, multipart.maxRequestSize=100Mb是设置单次请求的文件的总大小 如果是想要不限制文件上传的大小,那么就把两个值都设置为-1 ************************************************************************************************** *********注意:由于版本更新迭代快,如果以上的配置有误,请以Spring Boot的官方文档为准。*********   Spring Boot 各版本文档地址(比较齐全)  https://docs.spring.io/spring-boot/docs/      进入reference/html/目录就是了哈   **************************************************************************************************   from:https://www.cnblogs.com/liujf-a-mad-man/p/10775470.html

龙生   16 Jun 2023
View Details

解决springboot上传文件报错:The field XXX exceeds its maximum permitted size of 1048576 bytes

在使用springboot上传文件时后报错如下

  报错原因: 单个文件上传大小不能多于1MB 多个文件上传大小不能多于10MB springboot底层的源码简单解析

  解决办法:在properties或者yaml配置文件里自定义配置即可修改springboot文件上传最大限制,这里我在yaml里配置

  from:https://blog.csdn.net/happy488127311/article/details/120588972

龙生   16 Jun 2023
View Details

教你nginx跳转配置的四种方式

前言 最近工作用到了nginx,但是路由配置特殊,业务场景复杂,因此整理了集中nginx跳转的配置方式,如servername的正则,location的匹配顺序,rewrite和proxy的示例,相信总有一种满足你的需求。 一、配置server对应的域名 server name 为虚拟服务器的识别路径。因此不同的域名会通过请求头中的HOST字段,匹配到特定的server块,转发到对应的应用服务器中去。server_name匹配规则:后面可以跟多个域名,第1个是主域名 1.1、精确匹配 如下nginx配置

请求结果 curl http://my.test.com:8080 返回:I am mytest! curl http://test1.com:8080 返回:I am test1! 1.2、正则表达式 以*通配符开始的最长字符串,如下示例

以*通配符结束的最长字符串

通配符名字只可以在名字的起始处或结尾处包含一个星号,并且星号与其他字符之间用点分隔。所以,“my..com“都是非法的。 例如 :server_name my..com; 报以下错误: nginx: [emerg] invalid server name or wildcard "my.*.com" on 0.0.0.0:8080 匹配正则表达式

解释说明 ~: 表示大小写敏感的正则; ^:匹配字符串的开始; {.+}:换行符以外的任意自读重复一次活更多次; (): 分组与取值; :表示转义; serno:设置提取的变量; $:匹配字符串的结束; 请求结果

server_name的配置顺序是怎样的呢? 按照如下顺序匹配: 匹配顺序-> ->精确匹配 ->*在前的域名 ->*在后的域名 ->按文件中的顺序匹配 ->default server:第一个,listen指定default 二、配置location 2.1、Location 匹配规则:仅匹配URI,忽略参数

  匹配的正则符号如下: = 严格匹配。如果请求匹配这个location,那么将停止搜索并立即处理此请求 ~ 区分大小写匹配(可用正则表达式) ~* 不区分大小写匹配(可用正则表达式) !~ 区分大小写不匹配 !~* 不区分大小写不匹配 ^~ 如果把这个前缀用于一个常规字符串,那么告诉nginx 如果路径匹配那么不测试正则表达式 2.2、举例

2.3、匹配顺序如下图 按照上面的规则配置了如下location

curl […]

龙生   12 Jun 2023
View Details

docker中curl ip报错curl: (56) Recv failure: Connection reset by peer,宿主机无法ping通docker容器

docker中curl ip报错curl: (56) Recv failure: Connection reset by peer,宿主机无法ping(或curl)通docker容器 在创建容器的时候,容器的端口号一定要按照默认端口号填写,而主机端口号可随意填写(只要不重复),比如要创建一个tomcat容器,其容器端口号就要是8080,例如像这样 : docker run -d -p 3344:8080 --name tomcat1 tomcat 完成后的端口内容是这样的 此时就可以通过 curl localhost:3321 成功访问到容器tomcat的网页 以上是正确示例 之前一直报错curl: (56) Recv failure: Connection reset by peer,就是因为容器端口号没有按默认的来填写。 以下是错误示例 docker run -d -p 3355:2021 --name tomcat2 tomcat 没有按默认端口号填写后的容器端口内容为 此时再curl localhost:3355 就会报错 因此,总结,在创建容器的时候一定要按照该容器的默认端口号来填写   from:https://blog.csdn.net/mymic/article/details/112706792

龙生   08 Jun 2023
View Details

JS基础系列之 —— WebSocket

假设我们现在有这样一个需求:多人聊天室。我的思路是客户端发送消息给服务器,然后服务器把聊天信息全部返回,看起来比较简单哈,但是其中有一个问题,如果我不发消息的话,服务器怎么把其他人的聊天信息返回呢?一个比较笨的方法就是一直询问服务器,其他人是否发消息。出现这样的情况是因为http协议是单向通信,只支持客户端到服务端的通信,不支持服务端到客户端的通信,那我们有没有什么更简单的解决方案呢?为了解决实时数据传输和双向通信的需求,我们的主角WebSocket登场了。

龙生   30 May 2023
View Details

深入浅出 OkHttp 源码解析及应用实践

OkHttp 在 Java 和 Android 世界中被广泛使用,深入学习源代码有助于掌握软件特性和提高编程水平。
本文首先从源代码入手简要分析了一个请求发起过程中的核心代码,接着通过流程图和架构图概括地介绍了 OkHttp 的整体结构,重点分析了拦截器的责任链模式设计,最后列举了 OkHttp 拦截器在项目中的实际应用。

在生产实践中,常常会遇到这样的场景:需要针对某一类 Http 请求做统一的处理,例如在 Header 里添加请求参数或者修改请求响应等等。这类问题的一种比较优雅的解决方案是使用拦截器来对请求和响应做统一处理。
在 Android 和 Java 世界里 OkHttp 凭借其高效性和易用性被广泛使用。作为一款优秀的开源 Http 请求框架,深入了解它的实现原理,可以学习优秀软件的设计和编码经验,帮助我们更好到地使用它的特性,并且有助于特殊场景下的问题排查。本文尝试从源代码出发探究 OkHttp 的基本原理,并列举了一个简单的例子说明拦截器在我们项目中的实际应用。本文源代码基于 OkHttp 3.10.0。

龙生   30 May 2023
View Details

windows 系统,PHP+Nginx 环境搭建

本次选用各中间件的最新版本。 Nginx-1.23.2 + PHP 8.2.0 + Mysql 8.0.31。 先去各自官网下载 windows 对应的安装包备用。   PHP 安装 解压安装包 配置 在解压的目录下复制 php.ini-development 到 php.ini 作为正式的配置文件。 设置常用信息 memory_limit = 128M (脚本可用的最大内存) error_reporting = E_ALL (显示错误等级) display_errors = On (是否显示错误) post_max_size = 8M (post 提交的最大容量) file_uploads = On (是否可以上传文件) upload_max_filesize = 2M (最大上传文件大小) max_file_uploads = 20 (最多上传文件数量) date.timezone = Asia/Shanghai (设置时区) 开启需要的扩展,常用扩展默认都包含,不需要去掉前面的注释   Mysql 安装 解压安装包 安装&配置 以管理员身份运行 cmd 切到解压后的 bin 目录 执行 mysqld -install 进行安装,完成后会提示 Service successfully installed. 执行 mysqld--initialize-insecure --user=mysql 初始化数据库 完成后会生成 data 目录 并在 data 目录中 xxx.err 文件中记录初始账号密码信息 把 bin 目录加入环境变量中 解压目录下新建 my.ini 文件,根据需求记入配置信息

  确认 执行 net start mysql 启动 mysql 服务 cmd 中或者其他客户端工具连接 mysql 测试 重置 root 密码,然后退出用新密码再次登录确认

  其他设置 查看编码 mysql> […]

龙生   30 May 2023
View Details
1 39 40 41 410