小编Mav*_*Riz的帖子

JAX-WS,Axis2和CXF之间的区别

有什么区别:

  1. JAX-WS
  2. Axis2的
  3. CXF

这三个都可用于在Java中创建Web服务.
据我所知,JAX-WS是一个规范,Axis2和CXF是实现,但是如果我没有错,Java 1.6就会实现JAX-WS.

那么可以使用Java 1.6来开发JAX-WS Web服务而无需使用Axis2或CXF吗?那么Axis2,CXF的用途是什么?

java axis2 cxf jax-ws

127
推荐指数
3
解决办法
9万
查看次数

Spring属性解密

我们混合了一些尚未迁移到spring-boot或spring cloud的旧版spring应用程序以及spring boot应用程序。我正在创建一个Spring组件,该组件将在加载环境时自动解密spring属性(如果属性值已加密并具有前缀)。这些属性可以在.properties文件中(对于旧版应用程序)或在.yaml文件中(较新的Spring Boot应用程序)。

该组件应该能够解密任何spring属性,而不管其来源是什么,并且应该可以与任何spring版本一起使用并且不依赖于spring boot。组件还应该透明地解密属性。它应该从属性文件中读取密码短语,因此密码短语文件需要在开始时加载。

我们有自己的加密/解密工具,不想使用jaspyt。

到目前为止,尝试过的事情:

我喜欢这种创建ApplicationListener的方法,但这与Spring Boot(ApplicationEnvironmentPreparedEvent)捆绑在一起。使用诸如ContextRefreshed或ContextStart之类的Spring事件,我看不到如何获得ConfigurableApplicationContext / ConfigurableEnvironment。是否有人在没有Spring Boot / Cloud的情况下创建了用于加密/解密的监听器?

我还创建了一个自定义ApplicationContextInitializer,并将其添加到web.xml的context-param中,但这似乎不起作用。当我调试它时,我不认为它正在从我的app.properties文件中加载/读取属性。

       @Component
    public class DecryptingPropertyContextInitializer implements ApplicationContextInitializer<ConfigurableApplicationContext> {

        @Override
       public void initialize( ConfigurableApplicationContext applicationContext ) {
          ConfigurableEnvironment environment = applicationContext.getEnvironment();
          for ( PropertySource<?> propertySource : environment.getPropertySources() ) {
             Map<String, Object> propertyOverrides = new LinkedHashMap<>();
             decodePasswords( propertySource, propertyOverrides );
             if ( !propertyOverrides.isEmpty() ) {
                PropertySource<?> decodedProperties = new MapPropertySource( "decoded " + propertySource.getName(),
                      propertyOverrides );
                environment.getPropertySources().addBefore( propertySource.getName(), decodedProperties );
             }
          }
       }

        private void …
Run Code Online (Sandbox Code Playgroud)

java encryption spring properties spring-boot

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

Java MyBatis Enum字符串值

我觉得这是一个简单的问题,但我试过的一切都不适合我.我有一个枚举,我有字符串构造函数的原因是因为Java不允许枚举是数字的..我直接尝试了AA,AB,2C没有字符串构造函数但是这给出了一个错误.请注意,对于现有的枚举,我添加了C("2C").

public enum TestEnum{
      AA("AA"), AB("AB"), C("2C");
      private String display;
    private TestEnum( String display ) {
          this.display = display;
       }
    public String toString() {
          return display;
       }
    public String getDisplay() {
          return display;
       }
    public void setDisplay( String display ) {
          this.display = display;
       }
     public String getName() {
          return display;
       }
Run Code Online (Sandbox Code Playgroud)

现在我有一个mybatis映射器,它执行合并,这是存在的,映射器的一个参数是TestEnum.直到现在这个工作正常,因为枚举值和字符串值相同,但我添加了C("2C").现在我想使用mybaits将2C插入到表中,但它总是插入C.

merge into text t
        using (select #{id} as id from dual) d on (d.id = t.id)
        when matched then
        update set
        appId = #{applId},
        src = #{testEnum} …
Run Code Online (Sandbox Code Playgroud)

java enums enumeration ibatis mybatis

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

将jhipster应用程序部署到不同的上下文路径

我正在尝试使用'mvn'命令部署jhipster应用程序.我相信这将运行默认的spring-boot:run.我认为这部署到了tomcat.一旦服务器启动,应用程序就可以在http:// localhost:8080上获得.这很好用.但是,我想设置应用程序的上下文路径,我不想将其部署到根目录.

例如:http:// localhost:8080/test应该带我到应用程序索引页面.

我厌倦了以下,但它没有奏效.

mvn -Pprod包

java -jar target/jhipster-0.0.1-SNAPSHOT.war -Dserver.contextPath =/test

任何帮助表示赞赏.谢谢

java spring tomcat maven jhipster

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

Oracle 将 select max + 1 插入同一个表

我认为这很容易,但我无法解决这个问题。我想避免 pl/sql,最好希望用纯 sql 完成此操作。因此,在下面的sql中,我尝试通过从另一个表employee_agreement中选择来插入agreement_tbl。员工协议表返回大约 6000 行。因此,对于每一行,我想要插入的是在 AGREEMENT_NBR 列中插入的唯一 max(agreement_nbr) + 1 。

问题是,由于 sql 首先执行,所以 max(agreement_nbr) 总是相同的,比如 5000,当我尝试插入 max(agreement_nbr) 时,它会抛出“唯一约束异常”,因为它尝试为所有 6000 插入值 5000插入。如何从选择查询中获取每行的唯一 max+1?这可能就像从同一个表中插入和选择。任何帮助表示赞赏。谢谢

编辑:这是一个一次性脚本,agreement_tbl 已经填充了数千条记录。

INSERT
INTO
    Agreement_tbl
    (
        AGREEMENT_NBR,
        Employee_id,
        AGREEMENT_TEXT
    )   
      select            
         (select max(AGREEMENT_NBR)+1 from Agreement_tbl) as AGREEMENT_NBR,
          a.Employee_id ,
         a.AGREEMENT_TEXT
     from  employee_agreement
      -- some where conditions
Run Code Online (Sandbox Code Playgroud)

sql database oracle oracle11g

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