小编gol*_*dio的帖子

Spring,JndiTemplate外化提供程序URL

我的项目需要从属性文件加载初始上下文工厂和提供程序URL.这是我的Spring配置

<bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate" lazy-init="true">
    <property name="environment">
        <props>
            <prop key="java.naming.factory.initial">${initial.context.factory}</prop>
            <prop key="java.naming.provider.url">${provider.url}</prop>
        </props>
    </property>
</bean>

<bean id="jmsQueueConnectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean" lazy-init="true" depends-on="jndiTemplate">
    <property name="jndiTemplate">
        <ref bean="jndiTemplate"/>
    </property>
    <property name="jndiName">
        <value>${queue.connection.factory}</value>
    </property>
</bean>
Run Code Online (Sandbox Code Playgroud)

这是我的Spring容器初始化的方法

    PropertyPlaceholderConfigurer ppc = new PropertyPlaceholderConfigurer();
    ppc.setProperties(ConfigManager.getProperties());
    AbstractApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
    context.addBeanFactoryPostProcessor(ppc);
    context.refresh();
Run Code Online (Sandbox Code Playgroud)

QueueConnectionFactory初始化会引发异常

例外在线程"主" org.springframework.beans.factory.BeanCreationException:错误创建具有名称豆"jmsQueueConnectio nFactory"类路径资源定义[弹簧-config.xml中]:init方法的调用失败; 嵌套异常是javax.naming.Com municationException [根异常是java.net.ConnectException:http://maven.apache.org/ingestionservices-core:没有已知的有效值:'Default [http]:http(http):null:-1:192.168.50.160:-1'; 无可用路由到目的]在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFa ctory.java:1412)在org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFact ory.java:519) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactor y.java:456)atg.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:291)org.springframework.beans组织中的.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222).

似乎没有正确配置provider.url属性.如果我对提供者URL进行硬编码,它就有效.有人可以指出发生了什么吗?谢谢

spring jms

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

Jenkins:从全局函数设置环境变量

我有一个多分支管道项目,在SCM中带有脚本化的Jenkinsfile。我想通过共享的全局函数在管道中设置环境变量。我共享的全局函数如下所示:

#!/usr/bin/groovy

def call(String envName = 'staging') {

  def json = libraryResource 'env-config.yaml'
  def config = readYaml text: json
  def envObj = config.environments.find{it.name == envName}
  environment {
    PROJECT = ${envObj.project}
    ARTIFACTS_REPOSITORY = ${envObj.artifacts_repository}
    DOCKER_REGISTRY_PREFIX = ${envObj.docker_registry_prefix}
  }
  println "${envObj}"
}
Run Code Online (Sandbox Code Playgroud)

但是在我的Jenkinsfile中,我看不到这些设置:

timestamps {
  withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: 'xxx', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD']]) {
    node('klm') {
      try {
        def revisionTag
        loadEnvConfig('staging')
        println "project=${env.PROJECT}, repo=${env.ARTIFACTS_REPOSITORY}"
        ...
Run Code Online (Sandbox Code Playgroud)

env.PROJECT并且env.ARTIFACTS_REPOSITORY均为null。如果我envObj从函数返回并在管道中打印属性,则可以看到它们。是否可以通过我的函数设置环境变量?

编辑:我刚刚意识到我无法在多分支管道的Jenkinsfile中设置任何环境变量。例如,这两种模式都不起作用

timestamps {
  withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: 'xxx', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD']]) …
Run Code Online (Sandbox Code Playgroud)

jenkins jenkins-pipeline

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

如何在 Spring Boot 2.x 中配置 LoggingMeterRegistry 步骤持续时间?

我正在尝试配置 LoggingMeterRegistry 来记录我的 Spring Boot 2.1.6 应用程序的指标。我希望每小时记录一次指标。

在我的 application.yml 中,我进行了以下配置

management:
  metrics:
    export:
      logging:
        enabled: true
        step: 60m
Run Code Online (Sandbox Code Playgroud)

但在日志中我看到每分钟都会记录一次指标。我也尝试过属性键的其他变体,例如

management.metrics.export.logging:
  enabled: true
  step: 60m
Run Code Online (Sandbox Code Playgroud)

我还尝试了持续时间字符串的各种格式1h,例如,PT60M但没有成功。指标每隔 1 分钟记录一次。

我正在查看此处StepDurationConverterTest和此处StepDurationConverter 的代码,它将步骤持续时间字符串转换为 Duration 对象,看起来两种格式60m1h应该有效。

为什么我似乎无法更改记录间隔有什么想法吗?

spring-boot micrometer spring-micrometer

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

spring-data-envers Hibernate java.lang.NoSuchMethodError:org.hibernate.engine.spi.SessionImplementor.getTransactionCoordinator

我有一个带有Hibernate 5.2.2和Spring Data Envers 1.0.5的Spring Boot 1.4.2应用程序。实体在未经审核时会保持良好状态。使用以下注释对实体进行注释会@Audited导致使用以下堆栈跟踪进行事务回滚。有任何想法吗?

> 2016-12-22 18:15:08,364 ERROR | http-nio-8080-exec-1 |
> org.springframework.orm.jpa.JpaTransactionManager       | Commit
> exception overridden by rollback exception 
> java.lang.NoSuchMethodError:
> org.hibernate.engine.spi.SessionImplementor.getTransactionCoordinator()Lorg/hibernate/resource/transaction/TransactionCoordinator;
> at
> org.hibernate.envers.internal.synchronization.AuditProcess.doBeforeTransactionCompletion(AuditProcess.java:131)
> at
> org.hibernate.envers.internal.synchronization.AuditProcessManager$1.doBeforeTransactionCompletion(AuditProcessManager.java:46)
> at
> org.hibernate.engine.spi.ActionQueue$BeforeTransactionCompletionProcessQueue.beforeTransactionCompletion(ActionQueue.java:928)
> at
> org.hibernate.engine.spi.ActionQueue.beforeTransactionCompletion(ActionQueue.java:503)
> at
> org.hibernate.internal.SessionImpl.beforeTransactionCompletion(SessionImpl.java:2383)
> at
> org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.beforeTransactionCompletion(JdbcCoordinatorImpl.java:467)
> at
> org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.beforeCompletionCallback(JdbcResourceLocalTransactionCoordinatorImpl.java:146)
> at
> org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl.access$100(JdbcResourceLocalTransactionCoordinatorImpl.java:38)
> at
> org.hibernate.resource.transaction.backend.jdbc.internal.JdbcResourceLocalTransactionCoordinatorImpl$TransactionDriverControlImpl.commit(JdbcResourceLocalTransactionCoordinatorImpl.java:220)
> at
> org.hibernate.engine.transaction.internal.TransactionImpl.commit(TransactionImpl.java:68)
> at
> org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:517)
> at
> org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:761)
> at …
Run Code Online (Sandbox Code Playgroud)

hibernate-envers spring-data spring-data-jpa spring-boot

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

Spring Data Envers org.springframework.data.mapping.PropertyReferenceException:找不到类型的属性findRevisions

我有一个带有Hibernate 5.2.6和Spring数据Envers 1.0.5的Spring boot 1.4.2应用程序.我正在审核我的实体,并且审核记录保持正确.

我的应用程序配置类被注释为使用EnversRevisionRepositoryFactoryBean.class作为JPA存储库工厂.

应用程序配置

@Configuration
@EnableAutoConfiguration
@ComponentScan
@EnableJpaRepositories(repositoryFactoryBeanClass = EnversRevisionRepositoryFactoryBean.class)
@EnableTransactionManagement
public class ApplicationConfig {}
Run Code Online (Sandbox Code Playgroud)

我试图阅读被审计实体的修订版.实体存储库扩展了RevisionRepository.

实体模型

@Entity(name = "Base")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "type", discriminatorType = DiscriminatorType.INTEGER)
@Table(name = "BASE")
@Audited
public abstract class Base {

  @Id
  @GeneratedValue(generator = "baseSeq", strategy = GenerationType.SEQUENCE)
  @SequenceGenerator(name = "baseSeq", sequenceName = "BASE_SEQ", allocationSize = 1)
  @Column(name = "id", updatable = false, nullable = false)
  private Long id;

  @Column(name = "name", nullable = false)
  private String name;

  @Column(name = …
Run Code Online (Sandbox Code Playgroud)

spring hibernate-envers spring-data spring-data-jpa spring-boot

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

Eclipse PDE项目,添加bundle依赖项

在PDE项目中有没有办法从文件系统添加第三方包作为我的项目的依赖?我希望做同样的事情,BND工具允许; 将包添加到本地存储库,然后从项目中的该包中导入包.我不想使用maven osgi插件.

我已经尝试使用外部包创建用户库并将其设置为项目的构建路径,但这没有帮助.

eclipse osgi pde

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