我的项目需要从属性文件加载初始上下文工厂和提供程序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进行硬编码,它就有效.有人可以指出发生了什么吗?谢谢
我有一个多分支管道项目,在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) 我正在尝试配置 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 对象,看起来两种格式60m都1h应该有效。
为什么我似乎无法更改记录间隔有什么想法吗?
我有一个带有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 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
在PDE项目中有没有办法从文件系统添加第三方包作为我的项目的依赖?我希望做同样的事情,BND工具允许; 将包添加到本地存储库,然后从项目中的该包中导入包.我不想使用maven osgi插件.
我已经尝试使用外部包创建用户库并将其设置为项目的构建路径,但这没有帮助.
spring-boot ×3
spring ×2
spring-data ×2
eclipse ×1
jenkins ×1
jms ×1
micrometer ×1
osgi ×1
pde ×1