小编Aye*_*let的帖子

没有主分支创建的Git存储库

我想为新项目(在VM上)创建一个新的共享git存储库.

我跑git --bare init/.../git/new_proj.git,但.../git/new_proj.git/refs/heads目录中没有创建主分支.我也运行sudo chmod 777 -R了我的目录,但它没有帮助,并且在init命令后仍然没有创建master .

编辑: 我甚至尝试使用git init(没有裸标志),但仍然没有创建主分支.

谷歌在这件事上帮助不大......

谁知道问题是什么?我错过了什么?谢谢!

git repository git-branch

19
推荐指数
2
解决办法
2万
查看次数

ActiveMQ - 通过命令行删除/清除所有队列

有没有办法通过命令行(win/linux)删除/清除ActiveMQ中的所有队列?我只能找到特定队列的命令.或者也许有办法通过activeMQ管理员这样做?同样,我只找到了如何逐个删除/清除队列,这可能非常繁琐.

谢谢!

activemq-classic jms message-queue

11
推荐指数
3
解决办法
2万
查看次数

奇怪的Atomikos异常 - init()出错:Log已在使用中?

我们试图在几个本地环境中运行使用Atomikos作为事务管理器的相同Web应用程序(每个环境使用相同版本的spring,atomikos,tomact等,使用相同的配置文件).其中一些工作正常,但在其中一个中,当我们尝试启动tomcat时,我们得到以下异常:

Caused by: java.lang.IllegalStateException: Can't overwrite cause with java.lang.RuntimeException: Log already in use?
at java.lang.Throwable.initCause(Throwable.java:456)
at com.atomikos.icatch.standalone.UserTransactionServiceImp.init(UserTransactionServiceImp.java:326)
at com.atomikos.icatch.config.UserTransactionServiceImp.init(UserTransactionServiceImp.java:405)
at com.atomikos.icatch.config.UserTransactionServiceImp.init(UserTransactionServiceImp.java:569)
at com.atomikos.icatch.jta.UserTransactionManager.startupTransactionService(UserTransactionManager.java:89)
at com.atomikos.icatch.jta.UserTransactionManager.checkSetup(UserTransactionManager.java:77)
at com.atomikos.icatch.jta.UserTransactionManager.init(UserTransactionManager.java:142)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1638)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1579)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1509)
... 41 more
Caused by: com.atomikos.icatch.SysException: Error in init(): Log already in use?
... 54 more
Caused by: java.lang.RuntimeException: Log already in use?
at com.atomikos.icatch.standalone.UserTransactionServiceImp.createDefault(UserTransactionServiceImp.java:203)
at com.atomikos.icatch.standalone.UserTransactionServiceImp.init(UserTransactionServiceImp.java:258)
Run Code Online (Sandbox Code Playgroud)

我们无法弄清楚有问题的日志是什么,谷歌也没有多大帮助......任何人都知道这个奇怪问题的原因是什么?同样,我们的环境具有完全相同的配置,可以正常工作,另一个环境有另一个奇怪的警告:https: //stackoverflow.com/questions/20936253/atomikos-with-activemq-commit-heuristic-warnings

谢谢!:)

java tomcat jta atomikos

10
推荐指数
3
解决办法
7888
查看次数

Spring JMS(ActiveMQ) 消息延迟传递

我们正在尝试对某些 JMS 消息设置延迟,以便消息只会在 x 时间后添加到队列中/由侦听器接收。到目前为止,我们已经尝试了 2 种无效的方法。

1)根据spring文档,我们可以在JMSTemplate上设置交付延迟。这是我们尝试的示例代码:

@Autowired
private JmsTemplate jmsTemplate;

...
long deliveryDelay = ...;
this.jmsTemplate.setDeliveryDelay(deliveryDelay);
this.jmsTemplate.convertAndSend(
                    queue.getName(),
                    event);
...
Run Code Online (Sandbox Code Playgroud)

然而,我们得到以下异常,即使我们的 spring jms 版本是 4.0.5:

java.lang.IllegalStateException: setDeliveryDelay requires JMS 2.0
Run Code Online (Sandbox Code Playgroud)

2)我们也尝试在消息本身上设置延迟,但看起来延迟被忽略了,无论如何消息还是立即传递了。

@Component
public class MyMessageConverter implements MessageConverter {

...

@Override
public Message toMessage(Object eventObject, Session session) throws JMSException, MessageConversionException {

...
long deliveryDelay = ...;
objectMessage.setLongProperty(
                  ScheduledMessage.AMQ_SCHEDULED_DELAY,
                  deliveryDelay);
return objectMessage;
}
}
Run Code Online (Sandbox Code Playgroud)

spring xml中的jmsTemplate定义:

<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
    <property name="connectionFactory" ref="cachingConnectionFactory" />
    <property name="messageConverter" ref="myMessageConverter" />
    <property name="sessionTransacted" value="true" …
Run Code Online (Sandbox Code Playgroud)

java spring activemq-classic jms spring-jms

8
推荐指数
1
解决办法
2万
查看次数

MongoDB - 如何在Spring重新选举期间处理写入失败?

我用Spring配置了我的MongoDB副本集,我正在尝试测试自动故障转移.我知道如果主服务器出现故障,则需要几秒钟才能选出新的主服务器,因此在该时间段内,所有写操作都将失败.

我有一个测试应用程序每1秒写入一次数据库,当我取下主数据库时,我得到一个java.io.IOException(因为没有要写入的主数据库).如果我重新启动我的应用程序,则执行写操作而不会出现问题.

我认为MongoDB Java驱动程序可以使用重试来处理这些情况(我错了吗?),但我无法配置Spring来做到这一点,所以我会提供一些帮助.:)

我的配置是这样的:

<mongo:mongo id="mongo" replica-set="host1:27017,host2:27017,host3:27017">
    <mongo:options
        connections-per-host="8"
        threads-allowed-to-block-for-connection-multiplier="4"
        connect-timeout="1000"
        max-wait-time="1500"
        auto-connect-retry="true"
        socket-keep-alive="true"
        socket-timeout="1500"
        slave-ok="true"
        write-number="1"
        write-timeout="0"
        write-fsync="true"/>
</mongo:mongo>

<mongo:repositories base-package="my.repositories" />

<mongo:db-factory dbname="my_db" mongo-ref="mongo" />

<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
    <constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
</bean>
Run Code Online (Sandbox Code Playgroud)

谢谢!

spring mongodb database-replication spring-data-mongodb

7
推荐指数
1
解决办法
4527
查看次数

Spring 请求验证不起作用

我们正在尝试使用 spring 对请求进行输入验证。我们遵循了本教程:http : //spring.io/guides/gs/validating-form-input/但它似乎不起作用。看起来@NotNull和/或 @Valid由于某种原因被忽略了。

例如,我们有以下控制器:

@RequestMapping(value = "/test", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
@ResponseStatus(value = HttpStatus.OK)
@ResponseBody
public void test(@RequestBody @Valid TestDTO testDTO, BindingResult result) {

   this.validateDTO(result);
}


protected void validateDTO(BindingResult result) {

if (result.hasErrors()) {
    List<FieldError> fieldErrors = result.getFieldErrors();

    throw new FieldValidationException(fieldErrors);
  }
}
Run Code Online (Sandbox Code Playgroud)

TestDTO 是以下类:

public class TestDTO {

    @NotNull
    private String test;
...
}
Run Code Online (Sandbox Code Playgroud)

所以我们期望,当 POST 没有该test字段的请求时,FieldValidationException将被抛出。但是,这不会发生,因为result.hasErrors()出于某种原因 = false。

有谁知道为什么会这样?以及如何修复它?

编辑:我们尝试将验证器 bean …

java validation spring controller spring-mvc

7
推荐指数
1
解决办法
3024
查看次数

Spring JMS - 忽略指数消息重新传递策略

我们正在尝试使用 spring jms 为 ActiveMQ 设置重新传递策略。我们为重新传递设置了指数回退,但它似乎被忽略了 - 消息重新传递之间的间隔是固定的,而不是呈指数增长。

有谁知道可能是什么问题?这是我们的 spring-jms 配置:

<bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory"
    p:brokerURL="${activemq_url}">
    <property name="redeliveryPolicy" ref="redeliveryPolicy" />
</bean>

<bean id="redeliveryPolicy" class="org.apache.activemq.RedeliveryPolicy">
    <property name="queue" value="*" />
    <property name="initialRedeliveryDelay" value="10000" />
    <property name="redeliveryDelay" value="10000" />
    <property name="maximumRedeliveries" value="-1" />
    <property name="useExponentialBackOff" value="true" />
    <property name="backOffMultiplier" value="5" />
</bean>

<bean id="cachingConnectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory" 
    p:targetConnectionFactory-ref="connectionFactory" p:sessionCacheSize="10" 
    />

<!-- A JmsTemplate instance that uses the cached connection and destination -->
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
    <property name="connectionFactory" ref="cachingConnectionFactory" />
    <property name="messageConverter" ref="messageConverter" />
    <property name="sessionTransacted" value="true" …
Run Code Online (Sandbox Code Playgroud)

java spring activemq-classic jms spring-jms

6
推荐指数
1
解决办法
6092
查看次数

Spring JPA - 枚举中枚举字段的默认值

我们有一个带枚举字段的实体 - emailCommunicationStatus我们想要使用JPA注释为它设置一个默认值'UNKNOWN'.

但是,当我们将实体保存到DB时,该字段的值是否为null.对于布尔字段 - 保存isLocked正确的默认值(false).

@Entity
public class Account {

    @Id
    @GeneratedValue
    @Column(name = "id")
    protected Long id;

    @Column(columnDefinition = "boolean default false")
    private boolean isLocked;

    @Column(length = 32, columnDefinition = "varchar(32) default 'UNKNOWN'")
    @Enumerated(value = EnumType.STRING)
    private CommunicationStatus emailCommunicationStatus;

    PlayerAccount() {
        super();
    }
}

public enum CommunicationStatus {
    VALID,
    INVALID,
    DONT_CONTACT,
    UNKNOWN;
}
Run Code Online (Sandbox Code Playgroud)

如果我们改为使用:@Column(length = 32, columnDefinition = "varchar(32) default 'UNKNOWN'")因为emailCommunicationStatus我们在保存时遇到以下异常:

com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'emailCommunicationStatus' cannot …
Run Code Online (Sandbox Code Playgroud)

java enums spring hibernate jpa

6
推荐指数
2
解决办法
2万
查看次数

没有调用Spring安全自定义LogoutHandler

我已经实现了我自己的LogoutHandler并且我正在尝试在spring security xml中配置它,但由于某种原因它没有在注销时调用(注销成功,但我的代码没有被执行).

这是我的security.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:security="http://www.springframework.org/schema/security"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd">

<security:http use-expressions="true">
    <security:intercept-url pattern="/logoutSuccess"
        access="permitAll" />

<security:logout logout-url="/logout"
        logout-success-url="/logoutSuccess" />
</security:http>

<bean id="logoutFilter"
    class="org.springframework.security.web.authentication.logout.LogoutFilter">
    <constructor-arg index="0" value="/logoutSuccess" />
    <constructor-arg index="1">
        <list>
            <bean id="securityContextLogoutHandler"
                class="org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler" />
            <bean id="myLogoutHandler" class="my.package.MyLogoutHandler" />
        </list>
    </constructor-arg>
    <property name="filterProcessesUrl" value="/logout" />
</bean>
Run Code Online (Sandbox Code Playgroud)

MyLogoutHandler - 这是我想要在注销时执行的,但它没有被调用:

import org.springframework.security.web.authentication.logout.LogoutHandler;

public class MyLogoutHandler implements LogoutHandler {

@Override
public void logout(HttpServletRequest request, HttpServletResponse response, Authentication authentication) {

    System.out.println("logout!");

    }
}
Run Code Online (Sandbox Code Playgroud)

有谁知道它为什么不起作用?谢谢!

java spring spring-security

5
推荐指数
1
解决办法
9663
查看次数

MongoDB - 记录写入和读取查询

我们正在尝试记录 MongoDB 中的读写操作。我们希望将实际查询记录到文件中。我们使用以下配置(在副本集中的主节点中):

logpath=/.../mongodb.log
logappend=true
profile=2
slowms=1
diaglog=3
verbose=true
vvvv=true
Run Code Online (Sandbox Code Playgroud)

据我了解,这应该有效。但是,在日志中我们只能看到查询的类型(删除/插入/更新等)和集合,而不是执行的实际查询。

编辑:澄清一下:我们希望将读/写查询记录到常规 mongodb 日志文件中(例如,与您在 MySQL 中可以执行的操作相同)。

可能是什么问题呢?有人有什么想法吗?谢谢!

logging mongodb mongodb-query

5
推荐指数
1
解决办法
8875
查看次数

Java SFTP (apache vfs2) - 密码带有 @

我正在尝试使用 org.apache.commons.vfs2 通过 SFTP 下载文件。问题是,密码包含“@”字符,因此这会导致 URI 被错误解析:

org.apache.commons.vfs2.FileSystemException: Expecting / to follow the hostname in URI
Run Code Online (Sandbox Code Playgroud)

有谁知道如何解决这个问题?(显然我无法更改密码)。这是我正在使用的代码:

String sftpUri = "sftp://" + userName + ":" + password + "@"
        + remoteServerAddress + "/" + remoteDirectory + fileName;

String filepath = localDirectory + fileName;
File file = new File(filepath);
FileObject localFile = manager.resolveFile(file.getAbsolutePath());

FileObject remoteFile = manager.resolveFile(sftpUri, opts);
localFile.copyFrom(remoteFile, Selectors.SELECT_SELF);
Run Code Online (Sandbox Code Playgroud)

java sftp apache-commons-vfs

5
推荐指数
1
解决办法
4249
查看次数

MongoTemplate 聚合 - 按日期分组

我正在尝试使用 mongotemplate 创建聚合查询,其中按日期(即 2016-03-01)而不是日期时间(即 2016-03-01 16:40:12)进行分组。该dateToString操作存在于 mongodb 文档中,它可用于使用格式从日期时间中提取日期:https : //docs.mongodb.org/manual/reference/operator/aggregation/dateToString/ 但我得到它与 mongotemplate 一起使用- 我得到一个 NullPointerException。(我的数据库版本是 3.2)

List<AggregationOperation> aggregationOperations = new ArrayList<AggregationOperation>();

aggregationOperations.add(
          Aggregation.project("blabla", ...).
          andExpression("dateToString('%Y-%m-%d',timeCreated).as("date"));

aggregationOperations.add(Aggregation.group("date").sum("blabla").as("blabla"));

AggregationResults<?> aggregationResults = this.mongoTemplate.aggregate(
                        Aggregation.newAggregation(aggregationOperations),
                                    collectionName,
                                    resultClass);
Run Code Online (Sandbox Code Playgroud)

当我dayOfMonth(timeCreated)用来提取一天时,也不例外,但我找不到如何使用dateToString. 我试过不使用 '' 作为日期格式,它也不起作用......

这是我得到的例外:

java.lang.NullPointerException
    at org.bson.BasicBSONEncoder._putObjectField(BasicBSONEncoder.java:226)
    at org.bson.BasicBSONEncoder.putObject(BasicBSONEncoder.java:194)
    at org.bson.BasicBSONEncoder._putObjectField(BasicBSONEncoder.java:255)
    at org.bson.BasicBSONEncoder.putObject(BasicBSONEncoder.java:194)
    at org.bson.BasicBSONEncoder._putObjectField(BasicBSONEncoder.java:255)
    at org.bson.BasicBSONEncoder.putObject(BasicBSONEncoder.java:194)
    at org.bson.BasicBSONEncoder._putObjectField(BasicBSONEncoder.java:255)
    at org.bson.BasicBSONEncoder.putIterable(BasicBSONEncoder.java:324)
    at org.bson.BasicBSONEncoder._putObjectField(BasicBSONEncoder.java:263)
    at org.bson.BasicBSONEncoder.putObject(BasicBSONEncoder.java:194)
    at org.bson.BasicBSONEncoder.putObject(BasicBSONEncoder.java:136)
    at com.mongodb.DefaultDBEncoder.writeObject(DefaultDBEncoder.java:36)
    at com.mongodb.OutMessage.putObject(OutMessage.java:289)
    at com.mongodb.OutMessage.writeQuery(OutMessage.java:211)
    at com.mongodb.OutMessage.query(OutMessage.java:86)
    at com.mongodb.DBCollectionImpl.find(DBCollectionImpl.java:81)
    at com.mongodb.DB.command(DB.java:320) …
Run Code Online (Sandbox Code Playgroud)

java spring mongodb mongodb-query mongotemplate

5
推荐指数
1
解决办法
1万
查看次数

具有多个身份验证提供程序的Spring安全性 - UsernameNotFoundException

我们为2个身份验证提供程序提供了spring安全配置:一个用于人类用户,另一个用于其他Web应用程序(通过REST).请参阅我之前的问题:Web服务和用户的Spring安全性

现在,问题是,当webapp发送username + pass时,spring安全性首先尝试用户身份验证提供程序,失败,然后尝试其他身份验证提供程序.

org.springframework.security.core.userdetails.UsernameNotFoundException即使其余身份验证最终成功,这也会导致日志中出现.有没有办法防止这种情况发生?

配置是:

security.xml文件:

<security:http use-expressions="true">
    <security:intercept-url pattern="/user/login"
        access="permitAll" />
             ...
    <security:intercept-url pattern="/**"
        access="isAuthenticated()" />

    <security:form-login
        authentication-success-handler-ref="userAuthenticationSuccessHandler" />

    <security:logout logout-url="/user/logout"
        logout-success-url="/demo/user/logoutSuccess" />
</security:http>

<bean id="bCryptPasswordEncoder"
    class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder" />

<security:authentication-manager alias="authenticationManager">
    <security:authentication-provider
        ref="authenticationProvider">
    </security:authentication-provider>
    <security:authentication-provider
        ref="restAuthenticationProvider">
    </security:authentication-provider>
</security:authentication-manager>
Run Code Online (Sandbox Code Playgroud)

休息-security.xml文件:

<security:http create-session="stateless"
    entry-point-ref="digestEntryPoint" pattern="/provider/**"
    use-expressions="true">
    <security:intercept-url pattern="/provider/**"
        access="isAuthenticated()" />

    <security:http-basic />
    <security:custom-filter ref="digestFilter"
        after="BASIC_AUTH_FILTER" />
</security:http>

<bean id="digestFilter"
    class="org.springframework.security.web.authentication.www.DigestAuthenticationFilter">
    <property name="userDetailsService" ref="webappDetailsServiceImpl" />
    <property name="authenticationEntryPoint" ref="digestEntryPoint" />
</bean>

<bean id="digestEntryPoint"
    class="org.springframework.security.web.authentication.www.DigestAuthenticationEntryPoint">
    <property name="realmName" value="Contacts Realm via Digest Authentication" …
Run Code Online (Sandbox Code Playgroud)

java rest spring spring-mvc spring-security

1
推荐指数
1
解决办法
9279
查看次数