小编jam*_*123的帖子

超时方法调用

原始方法调用如下:

public string AskAPI(string uri)
{
    return api.Query(uri);
}
Run Code Online (Sandbox Code Playgroud)

其中api只是一个导入的dll引用.

现在我想在AskAPI方法中添加一个超时功能,这样如果api.Query需要的时间比30秒长,AskAPI会抛出异常.

似乎我无法让它工作.谁能分享他们对此的看法?

谢谢!

c# multithreading

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

project会将maven依赖关系视为文件夹而不是jar文件,并且在运行时会产生ClassNotFoundError

在我的maven项目中,我有这个依赖项,这是我自己的项目,安装在我的本地maven中(通过cmd mvn install):

    <dependency>
        <groupId>com.myproject</groupId>
        <artifactId>api-core</artifactId>
        <version>1.0.0</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

但是,当我启动tomcat服务器时,我将在此项目中的类上获得ClassDefNotFoundError.

我尝试通过项目的属性将jar添加到部署程序集中,但是当我添加此jar文件时,它将被视为文件夹,并始终放置在"WEB-INF/lib/core.api"的"部署"路径中. 1.0.0.jar"这是lib中的一个文件夹,因此tomcat无法找到jar文件.我还注意到在Web部署程序集中,Maven依赖项已部署到WEB-INF/lib.显然我自己的jar文件在部署时不被视为Maven依赖项.当我进一步查看Eclipse中的Maven依赖项时,jar文件被打包为"core"文件夹,并且它不被视为jar文件.因此,在运行时,Web应用程序无法找到jar文件并给我抱怨.

进一步的调查显示,在Eclipse中,我已经导入了核心项目,并且Eclipse"智能"地认识到项目是生成依赖项的项目,因此自动将jar转换为文件夹.如果我删除核心项目,maven依赖项将成功添加为jar文件,然后部署到tomcat问题根本没问题!

所以,我的问题是,这是一种保持文件夹结构依赖性的方法,而我仍然可以将核心项目导入我的工作区吗?

java eclipse tomcat maven

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

如何检测文本文件的实时更改?

我正在写一个小的PC工具来使用c#或java读取日志文件.日志文件将采用.txt格式.应用程序正在运行并写入日志,我希望我的工具同时打开日志,并在将新行写入日志文件时自动刷新.

我的挑战是,如何检测日志文件的变化,以便我的工具具有实时显示能力?这是一个普遍的问题,但伪代码将非常感谢!

c# algorithm logging

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

c#cmdlet如何获取正在使用的完整命令

我在c#中编写了cmdlet,我想知道在c#中是否可以使用cmdlet类中的name和paramter以及值来检索命令.

例如,我有一个cmdlet

[Cmdlet(VerbsCommon.Get, "Data")]
public class GetDataCmdlet : Cmdlet
{

    [Parameter(Position = 0, Mandatory = true)]
    public string DataSource ...

    [Parameter(Position = 1, Mandatory = false)]
    public string Login...
}
Run Code Online (Sandbox Code Playgroud)

然后我调用此cmdlet:Get-Data -DataSource IMAP

我如何尝试在GetDataCmdlet类中添加日志记录功能来记录被调用的完整cmdlet.我知道我可以通过以下方式获取命令名:string name = this.GetType().GetAttributeValue((CmdletAttribute cmd)=> cmd.VerbName +" - "+ cmd.NounName);

但参数及其价值如何?我可以做一个硬代码来获取数据值,但是当使用参数集和可选参数时会更复杂.是自动检索这些信息的方法吗?

谢谢!

c# powershell

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

如何允许变量在java中只设置一次

我需要在java中实现一个类,其中的字段只需要设置一次,但它的值在字段声明中是未知的.为此,我有:

public class MyClass {
    private String field1 = null;
    public void setField1(String value) {
        if (field1 == null) {
            field1 = value;
        }
     }
}
Run Code Online (Sandbox Code Playgroud)

但是,我没有阻止用户setField1多次拨打电话.这可能导致用户试图设置它的混乱(不知道它已被设置在其他地方)然后用户会因为field1没有给出他们设置的值而感到困惑- 直到他们进入setField1方法看看发生了什么.

我不喜欢的另一个解决方案是使构造函数接受值field1,然后不提供setter.因为它使得类更难扩展,所以当需要多个String字段时 - 在这种方法中,构造函数需要接受一对String作为参数,然后用户可能很容易被/缺少参数混淆.

并且显然设置field1final不起作用.

我该怎么做才能防止上面提到的问题?

java setter final

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

在c#中,如何在给出List <Object>时确定对象的类型?

我的方法看起来像:

Boolean actions(List<Object> input)
{
    if (input.element is String)
    {...}
    else if (input.element is PSObject)
    {...}
}
Run Code Online (Sandbox Code Playgroud)

我试过了 input.getType().GetGenericArguments()[0] == new PSObject().GetType())

但是input.getType().GetGenericArguments()[0]说它是对象类型......

c# types list covariance contravariance

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

python无法加载带有utf-8编码的json文件

使用以下python代码:

filePath = urllib2.urlopen('xx.json')
fileJSON = json.loads(filePath.read().decode('utf-8'))
Run Code Online (Sandbox Code Playgroud)

xx.json 如下所示:

{
    "tags": [{
        "id": "123",
        "name": "Airport",
        "name_en": "Airport",
        "name_cn": "??",
        "display": false
    }]
}
Run Code Online (Sandbox Code Playgroud)

我看到以下异常:

fileJSON = json.loads(filePath.read().decode('utf-8'))
    File "/usr/lib64/python2.7/json/__init__.py", line 339, in loads
        return _default_decoder.decode(s)
    File "/usr/lib64/python2.7/json/decoder.py", line 364, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
    File "/usr/lib64/python2.7/json/decoder.py", line 382, in raw_decode
    raise ValueError("No JSON object could be decoded")
    ValueError: No JSON object could be decoded
Run Code Online (Sandbox Code Playgroud)

该代码在将汉字添加到 json 文件之前起作用,当时我还在 read() 后面添加了 .decode('utf-8') 。

我不确定需要做什么?

python json urllib2

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

无法在 webpack 4 中加载 css 文件

给出以下 webpack 4 配置:

const path = require('path')
const webpack = require('webpack')
const MiniCssExtractPlugin = require("mini-css-extract-plugin")
const devMode = process.env.NODE_ENV !== 'production'
const devFlagPlugin = new webpack.DefinePlugin({
  __DEV__: JSON.stringify(JSON.parse(process.env.DEBUG || 'false'))
})

module.exports = {
    mode: "development",
    entry: [
        'webpack-dev-server/client?http://0.0.0.0:3000',
        'webpack/hot/only-dev-server',
        "./app/app.js"
    ],
    output: {
        path: path.join(__dirname, "build"),
        filename: "bundle.js"
    },
    devtool: 'eval-source-map',
    resolve: {
        extensions: ['.js', '.jsx']
    },
    module: {
        rules: [
            { 
                test: /\.jsx|\.js?$/, 
                loader: 'babel-loader',
                options: {
                    plugins: [
                        'react-hot-loader/babel'
                    ]
                },
                exclude: /node_modules/},
            {
                test: /\.jsx|\.js$/, …
Run Code Online (Sandbox Code Playgroud)

css webpack css-loader webpack-4

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

typescript 无法识别 .sequelizerc 文件

我有这个 .sequelizerc 文件:

\n\n
const path = require('path');\n\nmodule.exports = {\n  config: path.resolve('.', 'src/config/sequelizeCLIConfig.json'),\n  'migrations-path': path.resolve('.', 'db', 'migrations'),\n};\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后我有一个 .ts 文件,它生成名为 的 cli 配置文件generateSequelizeCLIConfig.ts,它执行以下操作:

\n\n
import path from 'path';\nimport fs from 'fs';\nimport config from '../../src/config';\nimport sequelizeRC from '../../.sequelizerc';\n\nconst env = process.env.NODE_ENV || 'development';\n\nconst targetFile = path.resolve(sequelizeRC.config);\n\nconst sequelizeCLIConfig: Record<string, any> = {};\nsequelizeCLIConfig[env] = config.db;\n\nfs.writeFile(targetFile, JSON.stringify(sequelizeCLIConfig, null, 4), err => {\n  if (err) {\n    return console.log(err);\n  }\n\n  console.log('The sequelizeCLI config file was saved at ' + targetFile + '!');\n});\n
Run Code Online (Sandbox Code Playgroud)\n\n …

node.js sequelize.js typescript sequelize-cli sequelize-typescript

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

使用 Stripe Checkout,我如何跟踪付款状态

在条带文档中,它说:

在此处输入图片说明

所以在这种情况下,结帐页面会转到我前端的成功或失败页面。

我使用后端来跟踪付款状态,以便我们可以监控管理门户中的交易,而上述方法对我来说似乎很危险。

结帐成功后,它将窗口重定向到成功 url。这意味着我必须在成功页面中调用后端 API 来更新付款状态。但是,stripe 是支付状态的真实来源,DB 上的状态更新应该来自 Stripe,而不是来自前端页面。至少,如果用户刷新成功页面,它会一次又一次地调用 API,这很糟糕。此外,它是关于“用户说我支付成功”与“Stripe 说他们支付成功”。

我尝试了 Stripe webhooks,但在 webhook 数据对象中,没有信息可用于将其链接到创建结帐会话时生成的 sessionId,但会话 ID 是我可以从 Stripe 获取的唯一跟踪 ID关于付款。

如果 Checkout 是安全更新我的数据库的唯一解决方案,最佳实践是什么?

stripe-payments

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