部署服务器坑杂记

部署服务器坑杂记,第1张

部署服务器坑杂记

目录

Redis (error) NOAUTH Authentication required

javassist.NotFoundException:

获取包下所有的类,spring的工具

springboot常用启动命令

调整ecelispe中的maven输出的日志级别为DEBUG

java.lang.NoClassDefFoundError: com/sun/istack/FinalArrayList

The POM for XXX is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details

Maven:程序包xxx不存在,找不到符号 transitive dependencies (if any) will not be available, enable debug logging f

mysql、datetime确到毫秒的问题

spring boot 使用 JdbcTemplate(Springboot使用jdbc)

spring boot中使用JdbcTemplate https://www.cnblogs.com/web424/p/6756342.html

logback.xml 模板

Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean.

java.lang.NoClassDefFoundError: javax/servlet/Filter


Redis (error) NOAUTH Authentication required

redis密码不正确,检查设置和配置的密码是否匹配

javassist.NotFoundException:

javassist找不到相关类、可能类加载器还没加载

		ClassPool pool = ClassPool.getDefault();
		ClassClassPath classPath = new ClassClassPath(XXXX.class);
		pool.insertClassPath(classPath);

ClassClassPath手动设置路径

获取包下所有的类,spring的工具
        ResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver();
        try {
            String pattern = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX +
                    ClassUtils.convertClassNameToResourcePath(base_PACKAGE) + RESOURCE_PATTERN;
            Resource[] resources = resourcePatternResolver.getResources(pattern);
            //metadataReader 的工厂类
            metadataReaderFactory readerfactory = new CachingmetadataReaderFactory(resourcePatternResolver);
            for (Resource resource : resources) {
                //用于读取类信息
                metadataReader reader = readerfactory.getmetadataReader(resource);
                //扫描到的class
                String classname = reader.getClassmetadata().getClassName();
                Class clazz = Class.forName(classname,true,父类的ClassLoader);
            }
        } catch (IOException | ClassNotFoundException e) {
        }

一般来讲是需要找某个接口或者父类的子实现类。

注意:在Class.forName().一定要传入父类的ClassLoader,非常重要。

java机制,即使两个类名字和路径一致,但是不是同一个类加载器也不是一个类。有可能是不同的加载器,特别是用springboot,tomcat等代理的时候。

springboot常用启动命令
nohup java -jar -Xmx512m -Dserver.port=8080 XXX.jar >nohup2.out 2>&1 &
调整ecelispe中的maven输出的日志级别为DEBUG

maven安装目录/conf/logging/simplelogger.properties 中 org.slf4j.simpleLogger.defaultLogLevel=info 最后的info改日志级别

java.lang.NoClassDefFoundError: com/sun/istack/FinalArrayList

引入istack-commons-runtime代码,maven如下

		
		
			com.sun.istack
			istack-commons-runtime
			4.0.0
		
The POM for XXX is invalid, transitive dependencies (if any) will not be available, enable debug logging for more details

Maven 传递依赖问题 ,更大可能是包没下载全,是错误的包体。删除对应包,重新下载后刷新几次即可。

Maven:程序包xxx不存在,找不到符号 transitive dependencies (if any) will not be available, enable debug logging f

Maven 传递依赖问题 ,更大可能是包没下载全,是错误的包体。删除对应包,重新下载后刷新几次即可。

mysql、datetime确到毫秒的问题

DATETIME(3) 即可精确到毫秒,不填长度,是秒。

spring boot 使用 JdbcTemplate(Springboot使用jdbc) spring boot中使用JdbcTemplate https://www.cnblogs.com/web424/p/6756342.html

链接如上,简单处理。

如下,maven导入

        
            org.springframework.boot
            spring-boot-starter-jdbc
        
		
		
			mysql
			mysql-connector-java
		

yml配置

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/${name}?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=UTF8
    username: ${username}
    password: ${password}

代码中使用

@Autowired
JdbcTemplate jdbcTemplate ;

public void create(String createTableSql){
 jdbcTemplate.execute(createTableSql);
}
logback.xml 模板



	
	 
	 
	 
	  
	 

	
	
		
			
			%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level[%thread] [%logger{0}.%M:%L] %line - %msg%n
		
	

	
	
		${log.base}/${log.moduleName}.log
		
		
			${log.base}/archive/${log.moduleName}_all_%d{yyyy-MM-dd}.%i.log.zip
			
			
				${log.max.size}
			
		
		
		
			
			%d{yyyy-MM-dd HH:mm} %-5level[%thread] [%logger{0}.%M] - %msg%n
		
	

	
	
		
		
		
	
	
	
		 
		
	
  

Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean.

可能是没加导入包

		
			org.springframework.boot
			spring-boot-starter
		
java.lang.NoClassDefFoundError: javax/servlet/Filter

要加入 spring tomcat的导入,注意,这里加servlet-api.jar导入意义不大,还会有其他报错

!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
		
			org.springframework.boot
			spring-boot-starter-tomcat
			
		

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/4828417.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-10
下一篇 2022-11-10

发表评论

登录后才能评论

评论列表(0条)

保存