我有一个实体如下
Class Person{
String id;
String name;
String numberOfHands;
}
Run Code Online (Sandbox Code Playgroud)
使用Spring Data Rest(Gosling Release Train),我可以指定
localhost/Person?sort=name,asc
Run Code Online (Sandbox Code Playgroud)
用于排序名称升序.现在,在我需要按numberOfHands降序排序并命名升序的情况下.我可以指定
localhost/Person?sort=numberOfHands,name,asc
Run Code Online (Sandbox Code Playgroud)
但是,我无法指定
localhost/Person?sort=numberOfHands,desc,name,asc
Run Code Online (Sandbox Code Playgroud)
有没有办法指定多个排序顺序?
谢谢!
我们使用ADFS作为IDP,我们的应用程序充当SP.以下是Auth响应示例
<?xml version="1.0" encoding="UTF-8"?>
<Assertion xmlns="urn:oasis:names:tc:SAML:2.0:assertion" ID="_82062d3d-897f-473e-90ad-0bb351d63b22" IssueInstant="2015-04-29T20:39:17.240Z" Version="2.0">
<Issuer>http://adfs/services/trust</Issuer>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
<ds:Reference URI="#_82062d3d-897f-473e-90ad-0bb351d63b22">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<ds:DigestValue />
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue />
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<ds:X509Data>
<ds:X509Certificate>certificate..... </ds:X509Certificate>
</ds:X509Data>
</KeyInfo>
</ds:Signature>
<Subject>
<NameID>username</NameID>
<SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
<SubjectConfirmationData InResponseTo="923ki0eg8h7g7y2243fi9jbdd1977j9" NotOnOrAfter="2015-04-29T20:44:17.240Z" Recipient="https://localhost/saml/SSO" />
</SubjectConfirmation>
</Subject>
<Conditions NotBefore="2015-04-29T20:39:17.240Z" NotOnOrAfter="2015-04-29T21:39:17.240Z">
<AudienceRestriction>
<Audience>https://localhost/saml/metadata</Audience>
</AudienceRestriction>
</Conditions>
<AuthnStatement AuthnInstant="2015-04-29T20:39:17.162Z" SessionIndex="_92062g3d-897f-473e-90ad-0aa351d63b22">
<AuthnContext>
<AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</AuthnContextClassRef>
</AuthnContext>
</AuthnStatement>
</Assertion>
Run Code Online (Sandbox Code Playgroud)
我面临的问题可分为两种情况:
闲置1小时后,我在本地注销用户.服务器会话到期是默认值30分钟.如果用户正在积极处理某些事情,我有我的代码每隔10分钟发送一次心跳ping.现在,问题是当用户在会话到期1小时后尝试登录时,我得到以下异常
Caused by: org.springframework.security.authentication.CredentialsExpiredException: Authentication statement is …Run Code Online (Sandbox Code Playgroud)我试图将我的项目从Maven构建转换为Gradle.该项目目前使用Spring Boot.
在我目前的maven配置中,我有
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-hibernate4</artifactId>
<version>${jackson.version}</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
在上面的代码片段中,jackson.version属性来自Spring Boot pom.现在,在Gradle中,我正在使用Spring Boot插件,我试图使用下面的代码片段.
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:1.2.4.RELEASE")
}}
apply plugin: 'idea'
apply plugin: 'spring-boot'
apply plugin: 'java'
dependencies {
compile("com.fasterxml.jackson.datatype:jackson-datatype-hibernate4")
}
Run Code Online (Sandbox Code Playgroud)
在上面,我期待spring Boot插件插入jackson-hibernate4模块的版本.但是,这不会发生
有关如何实现这一点的任何想法?我的目的是在整个项目中使用相同版本的jackson构建.
谢谢!
我有一个名为EmployeeDepartment的实体,如下所示
@IdClass(EmployeeDepartmentPK.class) //EmployeeDepartmentPK is a serializeable object
@Entity
EmployeeDepartment{
@Id
private String employeeID;
@Id
private String departmentCode;
---- Getters, Setters and other props/columns
}
Run Code Online (Sandbox Code Playgroud)
我有一个Spring Data Repository,如下所示
@RepositoryRestResource(....)
public interface IEmployeeDepartmentRepository extends PagingAndSortingRepository<EmployeeDepartment, EmployeeDepartmentPK> {
}
Run Code Online (Sandbox Code Playgroud)
此外,我有一个注册转换器从String转换为EmployeeDepartmentPK.
现在,对于一个由ID employeeID ="abc123"和departmentCode ="JBG"限定的实体,我希望在调用SDR接口时使用的ID是abc123_JBG.例如,http:// localhost/EmployeeDepartment/abc123_JBG应该获取结果,事实确实如此.
但是,当我尝试使用PUT保存实体时,Spring Data Commons的BasicPersistentEntity类中可用的ID属性的departmentCode值为abc123_JBG.这是错的.我不确定这是否是预期的行为.
请帮忙.
谢谢!
我有一个存储过程,它接受输入列表,然后输出结果集。使用的 DB 是 SQL Server 2008,JPA 2.1 规范提供程序是 Hibernate。
我的实体结构如下:
@NamedStoredProcedureQuery(name = "ModelSearchByModel",
resultClasses = ModelSearchByModelEntity.class,
procedureName = "SPR_ModelSearchByModel",
parameters = {
@StoredProcedureParameter(mode = ParameterMode.IN, name = "RegionCode", type = String.class),
@StoredProcedureParameter(mode = ParameterMode.IN, name = "BuildingCode", type = String.class),
@StoredProcedureParameter(mode = ParameterMode.IN, name = "ProductCode", type = String.class),
@StoredProcedureParameter(mode = ParameterMode.IN, name = "StatusCode", type = String.class),
@StoredProcedureParameter(mode = ParameterMode.IN, name = "MinWidth", type = Integer.class),
@StoredProcedureParameter(mode = ParameterMode.IN, name = "MaxWidth", type = Integer.class),
@StoredProcedureParameter(mode = ParameterMode.IN, name …Run Code Online (Sandbox Code Playgroud) 我对SAML断言到期与应用程序会话到期感到困惑.
简单来说,当我们在容器中部署应用程序时,会创建一个会话.可以使用web.xml中的以下条目控制此会话到期
<session-config>
<session-timeout>60</session-timeout>
</session-config>
Run Code Online (Sandbox Code Playgroud)
接下来,当我使用SAML扩展的Spring Security时,显然会应用相同的会话概念.(我正在WildFly 8.2中部署应用程序,如果这很重要)
此外,当应用程序会话到期时,注销行为似乎等同于本地注销概念.
到现在为止还挺好.现在让我们说SAML断言好2小时,用户已经积极工作了2个小时.接下来的请求会发生什么?它应该重新登录IDP吗?但是,这对用户来说不方便吗?如果应用程序重定向到IDP以在断言到期2小时后再次登录,那么应如何处理AJAX请求?
这是参考这里的问题
我正在使用部署在 WildFly 8.2 服务器上的 Spring Boot (v1.2.4)。在应用程序中,我使用的是 font awesome v4.3。
对于三个文件,每个文件都小于 100kb,我得到“响应已经提交的异常”,如下所示。
还有许多其他资源 > 100kb 并且仍然可以成功提供服务。
堆栈跟踪如下
2015-06-15 15:52:29,547 ERROR [org.springframework.boot.context.web.ErrorPageFilter] (default task-3) Cannot forward to error page for request [/resources/fonts/fontawesome-webfont.eot] as the response has already been committed. As a result, the response may have the wrong status code. If your application is running on WebSphere Application Server you may be able to resolve this problem by setting com.ibm.ws.webcontainer.invokeFlushAfterService to false: java.io.IOException: An established connection was aborted …Run Code Online (Sandbox Code Playgroud) 我有一个基于 Spring Boot 的应用程序,我正在尝试从 Maven 切换到 Gradle。该应用程序应该构建一个 war 文件,该文件部署到 Web 服务器(在我们的示例中为 WildFly)。
现在,我有一些由 Web 服务器提供的库,因此使用了“providedCompile”范围(用于休眠搜索和 infinispan)。现在,当与 Spring Boot 插件一起使用时,该插件正在创建一个 war 文件,其中所有“providedCompile”库都移到了一个名为“lib-provided”的文件夹中。
我如何避免这种情况?在相同的上下文中,它还将 Spring Boot 加载器类添加到 war 文件中。如果可能的话,我也需要避免这种情况。
请帮忙!谢谢!
我对以下项目的用法有点困惑:
<dependency>
<groupId>org.springframework.security.oauth.boot</groupId>
<artifactId>spring-security-oauth2-autoconfigure</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)
该项目似乎需要带有前缀的属性
security.oauth2.client
Run Code Online (Sandbox Code Playgroud)
然而,Spring boot 版本的 Oauth 配置以以下前缀开头
spring.security.oauth2.client
Run Code Online (Sandbox Code Playgroud)
更进一步,oauth2 自动配置项目似乎是
有人可以向我解释这个自动配置项目的主要目的吗?它是一个样本还是一个有望成为主流的试点项目?
我在理解synchronized关键字功能方面遇到了一些麻烦.根据java文档和其他教程,可以说当使用synchronized关键字时,在两个线程之间不可能在该方法的语句之间进行交错.
但是,请看下面的代码.
public class LockThread implements Runnable {
String name;
public LockThread(String name) {
this.name = name;
}
public static void main(String[] args) {
new Thread(new LockThread("a")).start();
new Thread(new LockThread("b")).start();
}
public void run() {
locked(Thread.currentThread().getId());
}
synchronized void locked(long l) {
System.out.println(name+"-"+l + "---> Printed from " + Thread.currentThread().getName());
System.out.println(name+"-"+l + "---> Printed from " + Thread.currentThread().getName());
}
}
Run Code Online (Sandbox Code Playgroud)
根据我的理解,程序输出应总是以线程0和线程1不应交错的方式进行.但是多次执行这段代码,我得到一个交错的输出..
With interleaving (Output I expect)
a-9 ---> Printed from Thread-0
a-9 ---> Printed from Thread-0
b-10 ---> Printed from … 我定义了一个基于 PagingAndSortingRepository 的存储库来实现以下查询
@Query(" SELECT me FROM CustomerModelEntity me WHERE me.planNum = :planNum AND me.customerModelStatusCode IN ('AVL','PHO')" +
" AND me.modelCode IN (SELECT e.modelCode FROM ModelEntity e WHERE e.modelStatusCode IN ('AVL','PHO'))")
Stream<CustomerModelEntity> findByPlanNum(@Param("planNum") String planNum);
Run Code Online (Sandbox Code Playgroud)
结果预计会有多个结果。但是,结果出来是一个例外如下
Caused by: javax.persistence.NonUniqueResultException: result returns more than one elements
at org.hibernate.jpa.internal.QueryImpl.getSingleResult(QueryImpl.java:505) [hibernate-entitymanager-4.3.7.Final.jar:4.3.7.Final]
at org.springframework.data.jpa.repository.query.JpaQueryExecution$SingleEntityExecution.doExecute(JpaQueryExecution.java:202) [spring-data-jpa-1.7.2.RELEASE.jar:]
at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:74) [spring-data-jpa-1.7.2.RELEASE.jar:]
at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:97) [spring-data-jpa-1.7.2.RELEASE.jar:]
at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:88) [spring-data-jpa-1.7.2.RELEASE.jar:]
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.doInvoke(RepositoryFactorySupport.java:395) [spring-data-commons-1.9.2.RELEASE.jar:]
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:373) [spring-data-commons-1.9.2.RELEASE.jar:]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) [spring-aop-4.1.6.RELEASE.jar:4.1.6.RELEASE]
at org.springframework.data.repository.core.support.RepositoryFactorySupport$DefaultMethodInvokingMethodInterceptor.invoke(RepositoryFactorySupport.java:486) [spring-data-commons-1.9.2.RELEASE.jar:]
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) [spring-aop-4.1.6.RELEASE.jar:4.1.6.RELEASE]
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99) [spring-tx-4.1.6.RELEASE.jar:4.1.6.RELEASE]
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:281) …Run Code Online (Sandbox Code Playgroud) 我正在构建一个基于Spring Boot v1.2的应用程序.虽然我的应用程序成功启动并执行良好(到目前为止......),但由于AbstractMethodError,我无法使用spring启动框架进行测试.
跟踪的最后几行如下
Caused by: java.lang.AbstractMethodError: org.springframework.data.jpa.repository.support.LockModeRepositoryPostProcessor.postProcess(Lorg/springframework/aop/framework/ProxyFactory;Lorg/springframework/data/repository/core/RepositoryInformation;)V
at org.springframework.data.repository.core.support.RepositoryFactorySupport.getRepository(RepositoryFactorySupport.java:185)
at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.initAndReturn(RepositoryFactoryBeanSupport.java:239)
at org.springframework.data.repository.core.support.RepositoryFactoryBeanSupport.afterPropertiesSet(RepositoryFactoryBeanSupport.java:225)
at org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean.afterPropertiesSet(JpaRepositoryFactoryBean.java:84)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1627)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1564)
... 55 more
Run Code Online (Sandbox Code Playgroud)
为了分析上面的错误,我检查了包含上述类的classpath中的jar文件.所以信息如下
jar:file:/C:/rearch/intellij-workspace/springbootproj/lib/spring-aop-4.1.2.RELEASE.jar!/org/springframework/aop/framework/ProxyFactory.class
jar:file:/C:/rearch/mavenrepo/org/springframework/data/spring-data-commons/1.9.1.RELEASE/spring-data-commons-1.9.1.RELEASE.jar!/org/springframework/data/repository/core/RepositoryInformation.class
jar:file:/C:/rearch/intellij-workspace/springbootproj/lib/spring-data-jpa-1.3.3.jar!/org/springframework/data/jpa/repository/support/LockModeRepositoryPostProcessor.class
jar:file:/C:/rearch/intellij-workspace/springbootproj/lib/spring-test-4.1.2.RELEASE.jar!/org/springframework/test/context/support/DependencyInjectionTestExecutionListener.class
Run Code Online (Sandbox Code Playgroud)
我不确定为什么spring-data-commons来自maven repostory文件夹,而其他的是从项目库提供的.
在我调试时,我同时需要你的帮助来确定上述库之间的版本兼容性.我无法准确指出导致错误的确切原因.请帮忙!
谢谢
spring-boot ×5
spring ×4
spring-data ×4
hibernate ×3
gradle ×2
java ×2
jpa ×2
saml-2.0 ×2
spring-saml ×2
angularjs ×1
java-8 ×1
session ×1
spring-mvc ×1
spring-test ×1
synchronized ×1
wildfly ×1