当前位置:首页 » 网页前端 » webapispring
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

webapispring

发布时间: 2023-07-02 18:19:33

A. 开发一套小型且完整的数据管理系统需要哪些知识

mongodb 做数据库nodejs写服务端html + css + js 写浏览器端需要哪些知识很难说得准确,业务是一定要懂的,基本的技术如各环境的api,js语言,页面设计与重构也是必须会的,再往上说,整个系统的架构设计,底层数据结构设计,算法设计,其实不是需要哪些知识,而是,你会的就用得上,如果你会,我想大数据,机器学习都是可以用上的。

B. JRebel启动报错

项目概况:SpringMVC

新接手的项目,安装JRebel插誉喊迟件(JRebel for IntelliJ v2019.1.1)后,启动报错,在此之前是可以正常启动项目。

报错核心信息: Exception in thread "Timer-RefreshDataTask" java.lang.IllegalStateException: BeanFactory not initialized or already closed - call 'refresh' before accessing beans via the ApplicationContext

报庆李错详细信息:

五月 10, 2019 10:37:36 上午 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc

严重: The web application [/edi-web] registered the JDBC driver [com.alibaba.druid.proxy.DruidDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.

五月 10, 2019 10:37:36 上渗伏午 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc

严重: The web application [/edi-web] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.

五月 10, 2019 10:37:36 上午 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc

严重: The web application [/edi-web] registered the JDBC driver [oracle.jdbc.driver.OracleDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.

五月 10, 2019 10:37:36 上午 org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks

严重: The web application [/edi-web] created a ThreadLocal with key of type [net.sf.json.AbstractJSON.CycleSet] (value [net.sf.json.AbstractJSON$CycleSet@52abeb56]) and a value of type [java.lang.ref.SoftReference] (value [java.lang.ref.SoftReference@73639524]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak.

[2019-05-10 10:37:36,507] Artifact xbwl-edi-web:war exploded: Error ring artifact deployment. See server log for details.

log4j:WARN No appenders could be found for logger (org.springframework.scheling.quartz.SchelerFactoryBean).

log4j:WARN Please initialize the log4j system properly.

log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

五月 10, 2019 10:37:45 上午 org.apache.catalina.loader.WebappClassLoader loadClass

信息: Illegal access: this web application instance has been stopped already.  Could not load org.springframework.core.NestedExceptionUtils.  The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.

java.lang.IllegalStateException

at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1612)

at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)

at org.springframework.core.NestedRuntimeException.<clinit>(NestedRuntimeException.java:45)

at org.springframework.scheling.quartz.SchelerFactoryBean$1.run(SchelerFactoryBean.java:673)

Exception in thread "Quartz Scheler [SYSSTATIC_SCHEDULE]" java.lang.NoClassDefFoundError: org/springframework/core/NestedExceptionUtils

at org.springframework.core.NestedRuntimeException.<clinit>(NestedRuntimeException.java:45)

at org.springframework.scheling.quartz.SchelerFactoryBean$1.run(SchelerFactoryBean.java:673)

Caused by: java.lang.ClassNotFoundException: org.springframework.core.NestedExceptionUtils

at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)

at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)

... 2 more

Exception in thread "Timer-RefreshDataTask" java.lang.IllegalStateException: BeanFactory not initialized or already closed - call 'refresh' before accessing beans via the ApplicationContext

at org.springframework.context.support..getBeanFactory(.java:170)

at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:985)

at com.xbwl.core.cache.CacheManager.<init>(CacheManager.java:20)

at com.xbwl.core.cache.CacheManager.getInstance(CacheManager.java:54)

at com.xbwl.core.mq.rabbitMq.service.impl.RabbitMqServiceImpl$RefreshDataTask.run(RabbitMqServiceImpl.java:107)

at java.util.TimerThread.mainLoop(Timer.java:555)

at java.util.TimerThread.run(Timer.java:505)

Exception in thread "Timer-RefreshDataTask" java.lang.IllegalStateException: BeanFactory not initialized or already closed - call 'refresh' before accessing beans via the ApplicationContext

at org.springframework.context.support..getBeanFactory(.java:170)

at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:985)

at com.xbwl.core.cache.CacheManager.<init>(CacheManager.java:20)

at com.xbwl.core.cache.CacheManager.getInstance(CacheManager.java:54)

at com.xbwl.core.mq.MqInterceptor.initMqCache(MqInterceptor.java:70)

at com.xbwl.core.mq.MqInterceptor.access$000(MqInterceptor.java:26)

at com.xbwl.core.mq.MqInterceptor$RefreshDataTask.run(MqInterceptor.java:64)

at java.util.TimerThread.mainLoop(Timer.java:555)

at java.util.TimerThread.run(Timer.java:505)

Exception in thread "Timer-RefreshDataTask" java.lang.IllegalStateException: BeanFactory not initialized or already closed - call 'refresh' before accessing beans via the ApplicationContext

at org.springframework.context.support..getBeanFactory(.java:170)

at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:985)

at com.xbwl.core.cache.CacheManager.<init>(CacheManager.java:20)

at com.xbwl.core.cache.CacheManager.getInstance(CacheManager.java:54)

at com.xbwl.core.service.impl.BaiWebApiServiceImpl$RefreshDataTask.run(BaiWebApiServiceImpl.java:41)

at java.util.TimerThread.mainLoop(Timer.java:555)

at java.util.TimerThread.run(Timer.java:505)

暂未解决,待续

C. java多条件查询问题

java多条件不定条件查询
网站或各类管理系统都会用到搜索,会用到一个或多个不确定条件搜索,单条件搜索比较简单,有时候会有多个条件共同查询,如果系统中已经提供了相关的方法供你使用最好,像我做这老系统改版,需要添加搜索,就要自己写了。开始也没管那么多,就是拼sql,但是后来发现要加搜索地方不少,总是这样写既增加了工作量,还要做很多重复工作,说不定以后还会做这样的工作,所以还是写一个比较通用的查询方法。
package com.test;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import javax.annotation.Resource;
import org.apache.poi.hssf.record.formula.functions.T;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import com.ams.bo.webapi.dto.Agent;
public class MultiTaskSearch {

@Resource(name="jdbcTemplate")
private JdbcTemplate jdbcTemplate;
@Resource(name = "storeFrontDAO")

private Map search() {
String name="公司";
String email="@163";
String invoiceTitle="公司";
int sign=1;
String at="2012-04-26";
Map<String, Object> map=new LinkedHashMap<String, Object>();//保持添加顺序
// Map<String, Object> map=new HashMap<String, Object>();//无固定顺序
map.put("name like", name);
map.put("email like", email);
map.put("invoiceTitle like", invoiceTitle);
map.put("sign =", sign);
map.put("addtime>=", at);
return map;
}

public <T> List<T> dbSearch(Class typeClass,Map<String, Object> map,String orderby) {
String paths[] = { "ams-servlet.xml" };
ApplicationContext ctx = new (paths);
jdbcTemplate = (JdbcTemplate)ctx.getBean("jdbcTemplate");

List<T> TList=null;
String tablename = typeClass.getName().substring(
typeClass.getName().lastIndexOf(".") + 1);
StringBuffer sql=new StringBuffer("select * from ");
sql.append(tablename);
if (map.size()!=0) {
sql.append(" t where 1=1");//后面只需拼接and条件
}
Set<Entry<String, Object>> set=map.entrySet();
Iterator iterator=set.iterator();
for (int i = 0; i < set.size(); i++) {
Map.Entry mapEntry=(Entry) iterator.next();
if (!"".equals(mapEntry.getValue().toString())) {

//模糊匹配
if (mapEntry.getKey().toString().contains("like")) {
// sql.append(" and t."+mapEntry.getKey()+" "+mapEntry.getValue()+" ");
sql.append(" and t."+mapEntry.getKey()+" '%"+mapEntry.getValue()+"%'");
//精确匹配
}else {
// sql.append(" and t."+mapEntry.getKey()+" '%"+mapEntry.getValue()+"%'");
sql.append(" and t."+mapEntry.getKey()+" "+mapEntry.getValue()+" ");
}
}
}
if (null!=orderby&&!"".equals(orderby)) {
sql.append(orderby);
}
System.out.println("SQL:"+sql.toString());
TList=jdbcTemplate.query(sql.toString(),new Object[] {}, new BeanPropertyRowMapper<T> (typeClass));

return TList;
}
public static void main(String[] args) {
MultiTaskSearch mt=new MultiTaskSearch();
Map map=mt.search();
String orderby=" order by addTime desc";
List<Agent> agents=mt.dbSearch(Agent.class, map,orderby);
for (Agent agent : agents) {
System.out.println(agent.getName());
}
System.out.println("****************"+agents.size());

}
}
或者可以用拼sql的方法实现
使用union关键字可以在一个文本框内搜索出多个条件的数据
select t1.* from
(
select * from agent where name like '"2%'
union
select * from agent where email like '"2%'
union
select * from agent where ContactPerson like '"2%'
) t1
这种查询结果是所有的集合,也可以把union换成or

D. Jersey 2.x集成Spring,怎么做单元测试

这里介绍另一个方法,利用“内存中的容器”来调试,就是我们不用打包并扔到tomcat中,自己在IDE中,用Unit Test的方法来测试。

1. Jersey的测试框架支持的容器很多,这里选用了常用的grizzly2
在项目的pom.xml中,引入依赖:
<dependency>
<groupId>org.glassfish.jersey.test-framework</groupId>
<artifactId>jersey-test-framework-core</artifactId>
<version>${jersey.version}</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>org.glassfish.jersey.test-framework.providers</groupId>
<artifactId>jersey-test-framework-provider-grizzly2</artifactId>
<version>${jersey.version}</version>
<scope>test</scope>
</dependency>

2. 写Jersey的Resource文件
@Path("my/jersey")
public class TestResource{
@Autowired
protected SystemManager systemManager; //这由spring注入

@GET
@Path("/test")
public String test(@QueryParam("systemId") Integer systemId) {
return "test";
}
}

3. 书写SystemManager和SystemManagerImpl


4. 把manager配置到Spring Application.xml中


5. 书写Jersey Application
@Path("webapi")
public class TestApplication extends ResourceConfig {
public TestApplication(){
register(RequestContextFilter.class);
register(TestResource.class);
}
}

6. 书写Unit Test文件
public class MyRestTest extends JerseyTest {

@Override
protected Application configure() {
ResourceConfig rc = new MyApplication()
.register(SpringLifecycleListener.class)
.register(RequestContextFilter.class);

enable(TestProperties.LOG_TRAFFIC);
enable(TestProperties.DUMP_ENTITY);

return configure(rc);
}

@Override
protected ResourceConfig configure(ResourceConfig rc) {
rc.property("contextConfigLocation", "spring.xml");
return rc;
}

@Test
public void test(){

final String hello = target("my/jersey/test")
.queryParam("systemId", 1)
.request()
.get(String.class);
System.out.println("==========\n" + hello);
}
}

7. 运行test(),即可看到结果。

E. auth返回状态码异常

throw new AuthException("ssCode","登录错了");
返回:
{
"error" : "ssCode",
"error_description" : "登录错了"
}
文章知识点与官方知识档案匹配
Java技能树首页概览
86213 人正在系统学习中
打开CSDN,阅读体验更佳
springsecurity+oauth2+jwt实现单点吵备册登录demo
该资源是springsecurity+oauth2+jwt实现的单点登录demo,模式为授权码模式,实现自定义登录页面和自定义授权页面。应用数据存在内存中或者存在数据库中(附带数据库表结构),token存储分为数据库或者Redis。demo包含服务端和客户端,可直接运行测试。
Spring Security OAuth2 认证服务器自定义异常处理
认证服务器默认返回的数据格式如下: { "error": "unsupported_grant_type", "error_description": "Unsupported grant type: password1" } 上面的返回结果很不友好,而且前端代码也很难判断是什么错误,所以我们需要对返回的错误进行统一的异常处理 1.默认的异常处理器 默认情况是使用WebRespo...
继续访问
自定义spring security oauth /auth/token的返回内容格式
场景 在前后端分离的项目中,一般后端返回给前端的格式是一个固定的json格式。 在这个前提下,spring security oauth 生成access token的请求/auth/token的返回内容就需要自定义 原返回值 我们希望使用我们自己固定的json格式 需求 我们的BaseResponse类 public class BaseResponse { pri...
继续访问
Spring Security OAuth2模块/oauth/token授权接口自定义返回结果
spring security提供了默认的oauth登录授权升宏接口/oauth/token,该接口位于org.springframework.security.oauth2.provider.endpoint包中的TokenEndpoint类。 公司要实现自定义的登录授权接口,且返回值滚型也要实现私有结构,下面大概讲一下怎么改造这个类来实现要求的业务逻辑。 一、利用Spring AOP方式 二、自定义Controller接口实现 简单粗暴,直接把TokenEndpointer类注入到自定义Controller中;
继续访问
Spring Security Oauth2 自定义异常返回信息
开头引用 https://my.oschina.net/merryyou/blog/1819572 在使用Spring Security Oauth2登录和鉴权失败时,默认返回的异常信息如下 { "error": "unauthorized", "error_description": "Full authentication is required to access this r...
继续访问
oauth2.0源码分析之oauth/token申请令牌
本期介绍的是在oauth2.0中 , 通过调用oauth/token接口 , 框架是如何给我们申请到JWT令牌的 , 内部做了些什么事情 ? 在分析源码之前 , 我们首先需要知道的是我们需要具备哪些调试条件 , 不然会发现许多奇奇怪怪的错误 (比如通过/oauth/token时出现401) 1.一张oauth2.0的内置表(oauth_client_details) 注意:这里的密码需要用Bcript加密 , 因为源码内部是用Bcript解密的 2.两把钥匙: 一本是后缀为jks的私钥 另一本是后缀为k
继续访问
SpringSecurity+OAuth2认证/oauth/token登录报错There is no client authentication
报错信息: { "error": "unauthorized", "error_description": "There is no client authentication. Try adding an appropriate authentication filter." } 找到这个问题原因后,发现自己被自己蠢哭了。 在自己的核心配置类里,把这个/oauth/token加入到忽...
继续访问
spring security+Oauth2密码模式认证时,报401,Unauthorized的问题排查
第一种情况: 进行 /auth/token的post请求时,没有进行httpbasic认证。 什么是http Basic认证? http协议的一种认证方式,将客户端id和客户端密码按照“客户端ID:客户端密码”的格式拼接,并用base64编码,放在 header中请求服务端。例子如下: Authorization:Basic ASDLKFALDSFAJSLDFKLASD= ASDLKFALDSFAJSLDFKLASD= 就是 客户端ID:客户端密码 的64编码 springsecurity中的...
继续访问
最新发布 SpringBoot使用SpringSecurity,使用oauth2登录,使用自定义/uaa/oauth/token报错解决
SpringBoot使用SpringSecurity,使用oauth2登录,使用自定义/uaa/oauth/token报错解决
继续访问
asp.net WebAPI OWIN OAuth2.0授权自定义返回结果及错误或异常问题处理办法
asp.net WebAPI OWIN OAuth2.0授权自定义返回结果及错误或异常问题处理核心代码,详情: https://www.cnblogs.com/wgx0428/p/12315546.html
ASP.NET WebAPI Token JWT Bearer 认证失败和成功返回自定义数据 Json
asp.net WebAPI Token Oauth2.0授权自定义返回结果(包括登录正确返回,登录失败返回)。 详细参考:https://blog.csdn.net/u013546115/article/details/105580532
Spring Security OAuth2 token权限隔离实例解析
主要介绍了Spring Security OAuth2 token权限隔离实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
spring security oauth其中的/oauth/token做了哪些
项目场景: 问题描述: 提示:这里描述项目中遇到的问题: 例如:数据传输过程中数据不时出现丢失的情况,偶尔会丢失一部分数据 APP 中接收数据代码: 原因分析: 提示:这里填写问题的分析: 例如:Handler 发送消息有两种方式,分别是 Handler.obtainMessage()和 Handler.sendMessage(),其中 obtainMessage 方式当数据量过大时,由于 MessageQuene 大小也有限,所以当 message 处理不及时时,会造成先传的数据被覆盖,进而.
继续访问
Spring Security OAuth2 自定义 token Exception
https://raw.githubusercontent.com/longfeizheng/longfeizheng.github.io/master/images/spring-security-OAuth208.png 1. 前言 在使用Spring Security Oauth2登录和鉴权失败时,默认返回的异常信息如下 { "error": "unauthorized", "error_description": "Full authentication is required to
继续访问
前后端分离 token过期 返回状态码
1.首先配置Mvc配置文件类 @Configuration public class BackendConfiguration extends WebMvcConfigurationSupport { @Autowired private LoginInterceptor loginInterceptor; @Override public void addInterceptors(InterceptorRegistry registry) { regi
继续访问
SpringSecurityOAuth2(2)请求携带客户端信息校验,自定义异常返回,无权处理,token失效处理...
上文地址:SpringSecurityOAuth2(1)(password,authorization_code,refresh_token,client_credentials)获取token 上一篇博客写了一个至简的OAuth2的token认证服务器,只实现了4种获取token的方式 ,对...
继续访问
oauth2.0自定义token失效返回信息
oauth2.0自定义token失效返回信息 一、问题 由于spring security oauth2返回的失效信息对于客户端不太有好,在网上找了自定义的解决方案以便更优雅的展示返回信息。 重写框架里的方法,实现自定义。 二、配置类 Oauth2ResourceServer extends @Override public void configure( reso
继续访问
热门推荐 解决Spring Security OAuth在访问/oauth/token时候报401 authentication is required
先来张图片 我在用psotman 测试oauth授权码模式的出现了401的异常, 就是调用oauth/token. 我是想用code换token,但是发现报错了。这是为什么呢? 首先你要理解 /oauth/token 这个如果配置支持的,且url中有client_...
继续访问
spring security 和OAuth2 整合访问 localhost:8082/oauth/token 报401的问题,或者403的问题
@Bean public PasswordEncoder passwordEncoder() { /** * 采坑 * spring-boot2 之后废弃了MD5,使用BCryptPasswordEncoder()加密; * */ return new BCryptPasswordEncoder(); } 注意在security的配置内中,要使用BCryptPasswordEncoder 加密,..
继续访问
数据库课程设计
c语言文件读写操作代码
html+css+js网页设计