小编fga*_*akk的帖子

有没有正确的方法来检查Java中的文件/目录存在?

码:

String dir = //Path to the  directory
File saveDir = new File(dir);
//Here comes the existence check
if(!saveDir.exists())
  saveDir.mkdirs();
Run Code Online (Sandbox Code Playgroud)

这部分代码用于将具有给定目录路径的文件保存到文件系统.在保存之前,我想检查给定的保存目录是否存在.然而,存在检查似乎并不像我想要的那样工作.如果不删除if子句,就不会创建所需的目录.在搜索我的问题时,我遇到了这个有趣的堆栈问题. Java中File.exists()的替代方案.据我所知java.io有这个问题.

在进行文件操作时是否有正确且安全的方法来检查目录或资源的存在?

java file-io

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

使用Java驱动程序获取Mongo Instance的版本

正如标题所示,我想获得客户端连接的mongo实例的版本.目前我使用的是mongo java驱动程序2.9.3,而mongo实例是2.2.2.

我需要这个,为了支持$pushAll$push使用$each功能的,因为前者是从2.4版本赞成后者弃用.总之我想知道Java驱动程序的等价物db.version()

java mongodb

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

旧版Commons-HttpClient在Axis2 Web服务客户端中提供IOException

我正在为axis2 Web服务使用wsdl2java生成的Web服务客户端(axis2版本为1.6.1).因此,对于http连接,使用旧版本的commons-httpclient 3.1.在对我的Web服务客户端进行一些负载测试时.在某些情况下,我遇到了这个例外

org.apache.axis2.AxisFault: org.apache.axiom.ext.io.StreamCopyException: Error reading from source
at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
at com.ardic.arcsp.carbon.registry.ws.stub.WSStorageServiceStub.fromOM(WSStorageServiceStub.java:16706)
at com.ardic.arcsp.carbon.registry.ws.stub.WSStorageServiceStub.wSgetById(WSStorageServiceStub.java:6659)
at com.ardic.arcsp.update.wsclient.WSStorageServiceClient.getResourceById(WSStorageServiceClient.java:177)
at com.ardic.arcsp.update.wsclient.OTAUpdateTestServlet.downloadResource(OTAUpdateTestServlet.java:162)
at com.ardic.arcsp.update.wsclient.OTAUpdateTestServlet.doGet(OTAUpdateTestServlet.java:91)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at sun.reflect.GeneratedMethodAccessor30.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:273)
at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:270)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)
at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:305)
at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:165)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:298)
at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:57)
at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:189)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.wso2.carbon.server.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:154)
at org.wso2.carbon.server.TomcatServer$1.invoke(TomcatServer.java:254)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399)
at org.apache.coyote.http11.Http11NioProcessor.process(Http11NioProcessor.java:396) …
Run Code Online (Sandbox Code Playgroud)

axis2 wsdl2java wso2 apache-commons-httpclient

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

Debezium 能否捕获 Postges 物化视图的变化

我们目前正在尝试使用 Debezium 捕获 Postgres 数据库中 4 个表的更改。我们目前知道,对于这个用例,我们可以使用 kafka-streams 应用程序来连接/聚合 KTable 的表,但是我们希望保持 kafka-stream 拓扑简单,所以我们的想法是使用 Postgres 中的物化视图和捕捉它的变化。

是否可以做到这一点,如果可以的话我们应该如何配置它?

Kafka Connect 源配置:

{
"name": "campaign-db-source-connector",
  "config": {
    "connector.class": "io.debezium.connector.postgresql.PostgresConnector",
    "key.converter": "io.confluent.connect.avro.AvroConverter",
    "value.converter": "io.confluent.connect.avro.AvroConverter",
    "key.converter.schema.registry.url": "http://schema-registry:8081",
    "value.converter.schema.registry.url": "http://schema-registry:8081",
    "tasks.max": "1",
    "database.hostname": "campaign-db",
    "database.port": "5432",
    "database.user": "postgres",
    "database.password": "postgres",
    "database.dbname" : "campaigndb",
    "database.server.name": "campaign-db"
  }
 }
Run Code Online (Sandbox Code Playgroud)

此配置当前可以捕获单个表中的所有更改,但不能捕获物化视图中的所有更改。(没有创建主题)

postgresql apache-kafka apache-kafka-connect debezium

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