小编lbe*_*ski的帖子

Orika - 将对象映射到列表(一对多映射)

我有两节课

class A {
    class InnerA {
        private String field;

        // getters/setters
    }

    private Collection<InnerA> collection;

    // getters/setters
}

class B {
    private String field;

    // getters/setters
}
Run Code Online (Sandbox Code Playgroud)

是否可以将A映射到B的集合(A.collection.field应该映射到B.field的集合中)?

我尝试使用自定义转换器,但我只需要管理java.lang.VerifyError:

    mapperFactory.getConverterFactory().registerConverter(new CustomConverter<A, Collection<B>>() {

        @Override
        public Collection<B> convert(
                A arg0, Type<? extends Collection<B>> arg1) {

            Collection<B> result = new ArrayList<B>();

            Iterator<Item> it = arg0.getCollection().iterator();
            while(it.hasNext()){
                it.next();
                result.add(new B());
            }

            return result;
        }

    });
Run Code Online (Sandbox Code Playgroud)

结果是:

java.lang.VerifyError: Inconsistent args count operand in invokeinterface in method    ma.glasnost.orika.generated.Orika_ArrayList_A_Mapper845657274.mapAtoB(Ljava/lang/Object;Ljava/lang/Object;Lma/glasnost/orika/MappingContext;)V at offset 74  
at java.lang.Class.getDeclaredConstructors0(Native Method) …
Run Code Online (Sandbox Code Playgroud)

java orika

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

PHP filemtime函数 - "stat failed for"

我有PHP filemtime函数的问题.在我的webapp中,我使用Smarty模板引擎和缓存选项.在我的webapp中,我可以做一些产生错误的动作,但是我们只关注一个动作.当我点击页面上的链接时,一些内容会更新 - 我可以点击几次,一切正常但是10上的一个请求失败了.发生以下错误:

filemtime() [<a href='function.filemtime'>function.filemtime</a>]: stat failed for
Run Code Online (Sandbox Code Playgroud)

以及导致问题的那一行:

 return ($_template->getCachedFilepath() && file_exists($_template->getCachedFilepath())) ? filemtime($_template->getCachedFilepath()) : false ;
Run Code Online (Sandbox Code Playgroud)

如您所见,文件存在,因为它已被选中.

有问题的代码行包含在smarty_internal_cacheresource_file.php(Smarty lib v3.0.6的一部分)中

App在UNIX系统上运行,外部托管.

有任何想法吗?我应该发布更多细节吗?

php unix smarty

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

使用用户命名空间共享 docker 套接字

使用用户命名空间时,是否可以使用从 docker 容器内的主机安装的 docker 套接字?

我有以下配置:

/etc/subuid

 user:100000:65536
Run Code Online (Sandbox Code Playgroud)

/etc/subgid

 user:100000:65536
Run Code Online (Sandbox Code Playgroud)

/etc/docker/daemon.json

{                              
  "userns-remap": "ns-user" 
}
Run Code Online (Sandbox Code Playgroud)

我创建了 UID 为 100000 的用户 ns-user 和 GID 为 100000 的组 ns-user。另外,我已将 ns-user 添加到组 docker。当我在主机上以 ns 用户身份登录时,我可以通过套接字使用 docker。

问题是,当我运行安装了 docker 套接字的容器时,套接字上的权限被拒绝。docker 容器内的套接字权限:

srw-rw---- 1 nobody nogroup 0 Jun 26 15:00 /var/run/docker.sock
Run Code Online (Sandbox Code Playgroud)

编辑1:

为了澄清,我认为容器内的 root (uid 0) 映射到有权访问 docker socket 的主机上的 ns-user (uid 100000)。但事实上我的许可被拒绝了。为什么?

我不想使用 --userns=host 参数。

docker linux-namespaces

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

注释 CXF (wsdl2java) 生成的包

我需要添加包级别注释(XmlJavaTypeAdapters 类型适配器)。问题是,当我运行 wsdl2java 时,它会为该包生成 package-info.java 文件。

当我尝试添加自己的 package-info.java 时,出现错误:“类型 package-ingo 已定义”。

有没有办法将我的注释注入到 package-info.java 中??也许还有其他想法?

谢谢

java cxf wsdl2java jaxb

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

Docker - 无法在java中的卷之间移动文件

我有两个泊坞容器:生产者和消费者.

消费者容器有两卷:

VOLUME      ["/opt/queue/in", "/opt/queue/out"]
Run Code Online (Sandbox Code Playgroud)

泊坞窗,compose.yml

consumer:
    image: consumer
producer:
    image: producer
    volumes_from:
    - consumer
Run Code Online (Sandbox Code Playgroud)

生产者将文件放在/opt/queue/in目录中,消费者从该目录读取文件并将其移动到/opt/queue/out.问题是消费者是用Java编写的,并且遵循Java代码返回-1(操作失败).

new File('/opt/queue/in/in_file').renameTo(new File('/opt/queue/in/in_file'));
Run Code Online (Sandbox Code Playgroud)

当我尝试从命令行移动文件时没有错误.文件正确移动.为什么会这样?我怎样才能诊断出问题所在?

java docker docker-compose

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

标签 统计

java ×3

docker ×2

cxf ×1

docker-compose ×1

jaxb ×1

linux-namespaces ×1

orika ×1

php ×1

smarty ×1

unix ×1

wsdl2java ×1