我HibernateJpaAutoConfiguration
在Spring单元测试中直接使用.在EntityManager
配置Hibernate时,不会扫描任何实体.
例外
10:29:36.377 [main] INFO o.s.b.f.a.AutowiredAnnotationBeanPostProcessor - JSR-330 javax.inject.Inject' annotation found and supported for autowiring
10:29:36.505 [main] TRACE o.s.b.b.PropertiesConfigurationFactory - Property Sources: org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor$FlatPropertySources@65f8f5ae
10:29:36.638 [main] TRACE o.s.b.b.PropertiesConfigurationFactory - Property Sources: org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor$FlatPropertySources@65f8f5ae
10:29:36.716 [main] TRACE o.s.b.b.PropertiesConfigurationFactory - Property Sources: org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor$FlatPropertySources@65f8f5ae
10:29:36.818 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Building JPA container EntityManagerFactory for persistence unit 'default'
10:29:36.842 [main] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [
name: default
...]
10:29:36.979 [main] INFO org.hibernate.Version - HHH000412: Hibernate Core {4.3.6.Final}
10:29:36.980 [main] INFO …
Run Code Online (Sandbox Code Playgroud) 我怀疑使用Spring时将在下面提到的场景中创建的实例数量:
bean配置是这样的
<bean id="a" class="A">
<property name="b" ref="b"/>
</bean>
<bean id="b" class="B" scope="session"/> or
<bean id="b" class="B" scope="prototype"/>
Run Code Online (Sandbox Code Playgroud)
默认情况下,bean"a"具有singleton scope
.因此,有一个单例bean,它引用了一个具有会话范围或原型范围的bean.
在这种情况下,如果同时有2个应用程序请求,那么将创建多少个A实例以及将创建多少个B实例?
如果有人可以解释这是如何工作的,那将会有很大的帮助吗?
谢谢,Divya
//这是我的代码,我正在代理...
import org.apache.commons.io.IOUtils;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.conn.DefaultProxyRoutePlanner;
{
HttpHost proxy = new HttpHost("proxyhost", 8082);
DefaultProxyRoutePlanner routePlanner = new DefaultProxyRoutePlanner(proxy);
HttpClient client = HttpClients.custom().setRoutePlanner(routePlanner).build();
HttpResponse response = client.execute(request);}
Run Code Online (Sandbox Code Playgroud)
//我的控制台上出现以下错误
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/ssl/SSLContexts
at org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java:966)
at TwitterFeeds.main(TwitterFeeds.java:40)
Caused by: java.lang.ClassNotFoundException: org.apache.http.ssl.SSLContexts
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 2 more
Run Code Online (Sandbox Code Playgroud)
我正在使用以下罐子
httpclient-4.5.2.jar
httpcore-4.3.jar
Run Code Online (Sandbox Code Playgroud) 我有单页应用程序,该应用程序使用Angularjs
并集成Keycloak
用于身份验证和授权。
我能够登录我的应用程序,获得登录的用户角色等。刷新令牌调用的那一刻,它总是在我的其他情况下返回,并且用户注销应用程序。虽然令牌有效时间设置得非常高。
如果用户打开了应用程序,我需要更新令牌。如果失败或令牌过期,我需要注销用户。if (refreshed)
总是返回假。
下面是我正在使用的一段代码。
var __env = {};
Object.assign(__env, window.__env);
var keycloakConfig = {
"url" : __env.keycloakUrl,
"realm" : __env.keycloakRealm,
"clientId" : __env.keycloakClientId,
"credentials" : {
"secret" : __env.keycloakSecret
}
};
var keycloak = Keycloak(keycloakConfig);
keycloak.init({
onLoad : 'login-required'
}).success(function(authenticated) {
if(authenticated){
keycloak.loadUserInfo().success(function(userInfo) {
bootstrapAngular(keycloak, userInfo, roles);
});
}
});
function bootstrapAngular(keycloak, userInfo, roles) {
angular.module('myApp').run(
function($rootScope, $http, $interval, $cookies) {
var updateTokenInterval = $interval(function() {
// refresh token if it's …
Run Code Online (Sandbox Code Playgroud) 我有自己的登录页面,用户在其中输入用户名/密码。 该用户名/密码用于通过 Keycloak Rest API 登录。
http://localhost:8080/auth/realms/Demo/protocol/openid-connect/token
input - {username,password,grant_type,client_secret,client_id}
Run Code Online (Sandbox Code Playgroud)
我得到的回应是access token
。
现在我希望启用身份验证器 ( Google Authenticator
)。我已经从后端启用了它。现在,如果用户希望通过我的应用程序登录,我的登录页面需要获取以下详细信息。
1.)不知何故,我需要包含在用户名/密码验证后出现在keycloak登录页面上的二维码,以便在用户输入用户名/密码后首次登录时显示在我的登录屏幕上。那么我们是否有任何 API 可以返回 Keycloak 二维码图像作为响应。
2.) 后续登录将有 OTP 字段,因此需要一个 REST api 来传递 OTP 以及用户名/密码。
如果 keycloak 有 REST API,请提供帮助。通过 Javascript 集成。
与此处用例 1 中描述的流程类似
只是想使用keycloak作为数据库,为我做所有操作,输入将是我的屏幕。我确实希望在登录时重定向 URL,但应该独立部署。
authentication user-registration keycloak keycloak-services multi-factor-authentication
我有一个用Struts 1 + JSP编码的遗留银行应用程序
,现在的要求是将后端(现在是 MVC)迁移到(MVC)。稍后 UI (JSP) 将迁移到.Springboot
angular
注意事项
1.) 后端不是无状态的
2.) 会话对象中存储了大量数据
方法
有2个应用程序并行运行(Struts和Spring),并在两者之间共享会话对象,将会话存储在数据库、内存(Redis)等中。这意味着需要进行大量代码更改,因为当前会话是跨 JSP、操作、每次更新/获取的服务层进行操作的
构建完整的 Spring 应用程序然后使其上线,这又是不可行的,我们不能让用户等待。
在同一个应用程序中将 Struts 1 和 Spring 结合起来,然后将它们分开,并逐步删除 struts 组件。
问题
在同一个 Web 应用程序中同时使用 Struts 1 和 Spring 是否可行?可以有 2 个不同的 servlet (ActionServlet
&DispatcherServlet
一起存在),如果我有 2 个不同的 spring 和 struts 上下文路径,这是可能的
目前重点是迁移MVC层,服务层不会成为问题。
另外,如果我将来需要保留API 的后端设计以支持 REST ,如果我能以这种方式设计,也是可能的。
当前的
JSP -> …
使用JPA 1(hibernate-core版本3.3.0.SP1和hibernate-entitymanager版本3.4.0.GA):我有一些类似于下面定义的实体,其中ChildOne和ChildTwo从父实体扩展.
@Entity
@Table(name = "TABLE_FATHER")
@Inheritance(strategy = InheritanceType.JOINED)
@DiscriminatorColumn(discriminatorType = DiscriminatorType.INTEGER, name = Father.C_ID_CTG)
public class Father {
@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "sq")
@Column(name = "ID_PK", nullable = false)
@BusinessId
private Long id;
...
}
@Entity
@Table(name = "TABLE_CHILD_ONE")
@Inheritance(strategy = InheritanceType.JOINED)
@DiscriminatorValue(Categories.ID_CTG_ONE)
public class ChildOne extends Father {
...
}
@Entity
@Table(name = "TABLE_CHILD_TWO")
@Inheritance(strategy = InheritanceType.JOINED)
@DiscriminatorValue(Categories.ID_CTG_TWO)
public class ChildTwo extends Element {
...
}
Run Code Online (Sandbox Code Playgroud)
假设我有一个拥有父元素的实体,另一个拥有父元素的集合.在这两种情况下,应该去儿童实体.
@Entity
@Table(name = "TABLE_ONE")
public class OneTable {
@JoinColumn(name …
Run Code Online (Sandbox Code Playgroud) 我需要验证用户输入的日期日期.
假设用户选择ERA
- >输入DOB作为YY - MM - dd
格式.
在服务器端,我接收input date
和ERA
由用户选择的.
现在我需要验证所选ERA的输入日期,如果日期属于特定ERA期间.
我知道在Java Calendar API中有这方面的支持,也有类JapaneseImperialCalendar
,但我不知道如何使用它,虽然它在内部使用它.
这就是我现在所做的.
public static void main(String[] args) {
Locale locale = new Locale("ja", "JP", "JP");
Calendar now = Calendar.getInstance(locale);
System.out.println(now.get(Calendar.ERA));
Map<String, Integer> names = now.getDisplayNames(Calendar.ERA, Calendar.LONG, locale);
System.out.println(names);
System.out.printf("It is year %tY of the current era%n", now);
System.out.printf("The calendar class is: %s%n", now.getClass().getName());
}
Run Code Online (Sandbox Code Playgroud)
产量
4
{??=3, ??=4, ??=2, ??=1, ??=0}
It is year 0026 of …
Run Code Online (Sandbox Code Playgroud) 我知道keycloak暴露在api下面,
<dependency>
<groupId>org.keycloak</groupId>
<artifactId>keycloak-services</artifactId>
<version>2.0.0.Final</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
这里有完整的文档.我在这里找不到所需的api来获取具有映射到它们的特定角色的所有用户.
问题陈述 - 我需要从具有特定角色的keycloak服务器中挑选所有用户.我需要向所有用户发送电子邮件,并将角色映射到他们.
在我的应用程序中,我使用hibernate,连接数据库并创建会话.这是我的hibernate.cfg.xml文件.还行吧.它运作正常.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- Database connection settings -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/country</property>
<property name="connection.username">root</property>
<property name="connection.password">password</property>
</session-factory>
</hibernate-configuration>
Run Code Online (Sandbox Code Playgroud)
但是当我尝试db.property file
使用hibernate.cfg.xml
它来读取数据库配置属性时,它显示了Exception,这是我的另一个hibernate.cfg.xml
文件
<util:properties id="db" location="classpath:db.properties" />
<hibernate-configuration>
<session-factory>
<!-- Database connection settings -->
<property name="driverClassName" value="#{db['driverClassName']}"></property>
<property name="url" value="#{db['url']}"></property>
<property name="username" value="#{db['username']}"></property>
<property name="password" value="#{db['password']}"></property>
</session-factory>
</hibernate-configuration>
Run Code Online (Sandbox Code Playgroud)
这是错误
org.dom4j.DocumentException: Error on line 8 of document : The prefix "util" for element "util:properties" is not bound. …
Run Code Online (Sandbox Code Playgroud) java ×5
hibernate ×3
keycloak ×3
jpa ×2
spring ×2
spring-boot ×2
angularjs ×1
calendar ×1
date ×1
httpclient ×1
inheritance ×1
instance ×1
jar ×1
locale ×1
migration ×1
multi-factor-authentication ×1
mysql ×1
spring-mvc ×1
ssl ×1
struts-1 ×1
token ×1