小编Red*_*gle的帖子

如何在文件夹中存储事件日志

在ASP .NET项目(C#)上,我使用System.Diagnostics命名空间来记录错误,警告和信息.使用Windows 7我看到我为项目设置的日志位于"应用程序和服务日志"下.如何设置代码以创建文件夹并将其放在"应用程序和服务日志[某些文件夹] \应用程序和服务日志"下,例如?

c# asp.net event-log

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

如何访问 Swagger Codegen 生成的 JAXRS 类上的请求标头

我有一个带有 Swagger API 的项目,其服务器代码是由 swagger-codegen-2.4.24 为语言 jaxrs 生成的。

生成的代码有一个后缀为“*ApiService”的抽象类,它定义了一系列方法,每个方法对应于API的Swagger规范上定义的每个操作。

每个方法都有一个 javax.ws.rs.core.SecurityContext 接口局部变量。

现在,在扩展“*ApiService”的自定义类上,它显然具有 javax.ws.rs.core.SecurityContext 类局部变量,我需要获取请求标头“X-Forwarded-For”的值。

如果我调试自定义类,我会看到 SecurityContext 接口是 org.glassfish.jersey.server.internal.process.SecurityContextInjectee 的实例,它具有我需要的标头。

由于 SecurityContextInjectee 是私有的,我无法使用它,因此如何获取该信息?

我意识到,如果 swagger-codegen 生成的类除了 SecurityContext 之外还添加了 javax.servlet.http.HttpServletRequest 类,则可以访问请求参数,但我没有看到任何允许这样做的 jaxrs 参数。

期待您的评论。

java rest swagger swagger-codegen

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

禁用自签名证书的使用者备用名称 (SAN) 验证

我有一个 WildFly 实例(让我们称之为实例 1),并将自签名证书添加到密钥库中。该证书是使用KeyStore Explorer 5.2.1创建的创建的。

\n\n

生成的证书仅指定 CN,即服务器名称\\主机名,其中实例 1生成的证书仅指定 CN,即安装我没有\xe2\x80\x99t 指定任何 SAN,因为我希望可以在本地(通过“127.0.0.1”或“localhost”)或远程(通过主机名或 LAN IP)访问安装在实例 1 上的应用程序。

\n\n

实例 1上仅安装了一个应用程序(我们称之为应用程序 A,它提供了多个 REST Web 服务

\n\n

我在另一台服务器上有另一个 WildFly 实例(让我们称之为实例 2)。使用密钥库资源管理器 5.2.1我将之前生成的证书导入到该实例的信任库中。

\n\n

实例 2只有 1 个应用程序(我们称之为应用程序 B)访问应用程序 A提供的 REST Web 服务

\n\n

如果应用程序 B指定了应用程序 A所在服务器的 IP 而不是主机名则会出现以下异常:

\n\n
    \n
  • javax.net.ssl.SSLHandshakeException:java.security.cert.CertificateException:不存在主题备用名称
  • \n
\n\n

我不想\xe2\x80\x99 不想在 SAN 证书上指定 IP,因为如果实例 1所在服务器的 …

java rest ssl jboss wildfly

5
推荐指数
0
解决办法
1170
查看次数

DataMember发出默认值

我有一个可以接受一个字符串的.Net Web服务功能.

然后该函数将该字符串序列化为JSON,但我只想序列化它,如果它的值不是"".

我找到了这些说明:

http://msdn.microsoft.com/en-us/library/aa347792.aspx

[DataContract]
public class MyClass
{
   [DataMember (EmitDefaultValue=false)]
   public string myValue = ""
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,我无法隐藏序列化中的myValue,因为""不是字符串的.Net默认值(这有多么愚蠢!)

两种选择之一

  1. 在Web服务上有某种属性,将""设置为null

  2. 在课堂上有一些条件

我更喜欢第一,因为它使代码更清晰,但意见会很好.

谢谢

asp.net json datamember

4
推荐指数
2
解决办法
3379
查看次数

过期的密码更改失败

我正在使用JTOpen API来访问AS400系统.

我可以成功更改活动的AS400用户密码,如下所示:

AS400 system = new AS400("AS400SYSTEM", "AS400USER");
system.changePassword("OLDPASSWORD", "NEWPASSWORD");
Run Code Online (Sandbox Code Playgroud)

另一方面,当我尝试以相同的方式更改过期的用户密码时,我从第二行抛出以下异常:

com.ibm.as400.access.AS400SecurityException:密码不正确.

我需要先做什么?

java jtopen ibm-midrange

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

未找到 Log4J 属性文件

我有一个已添加到 Web 项目的 Java 构建路径的 Java 项目。

在第一个 Java 项目中,我将 Log4J JAR 文件添加到 Java 构建路径中,并且由于该项目已添加到 Web 项目的 Java 构建项目中,因此 JAR 文件也自动添加到了 Web 项目 Java 构建路径中。

在 Web 项目上,我有一个 Web 服务,它实例化 Java 项目的一个类。该类有一个简单的 Logger,并且可以正常工作。

现在,我正在尝试创建一个名为 log4j.properties 的属性文件来配置 Logger、Appender 和 LayoutPattern。

每当我尝试调用实例化类的方法时,我都会在控制台上收到此错误:

log4j:ERROR 无法读取配置文件 [log4j.properties]。

我究竟做错了什么?

这是 log4j 属性文件:

log4j.rootLogger=DEBUG, CA

log4j.appender.CA=org.apache.log4j.ConsoleAppender 
log4j.appender.CA.layout=org.apache.log4j.PatternLayout 
log4j.appender.CA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
Run Code Online (Sandbox Code Playgroud)

抱歉,这是误报...

就像我说的,实例化记录器的类所在的项目被添加为定义 Web 服务的主项目的依赖项。

结果,该项目发布在 JAR 文件中,并使用我提到的 suposed 解决方案:

PropertyConfigurator.configure(getClass().getProtectionDomain().getCodeSource().getLocation().getPath() + "log4j.properties");

我得到一条类似的路径:

C:/project_path.jar/log4j.properties。

显然,仍然没有找到属性文件......

Sory...仍在研究解决方案

java log4j properties file

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

Log4J特定文件的特定级别 - appenders

我正在为我的一个项目使用log4j,我知道可以为每个appender设置阈值.

我的目标是仅将INFO消息记录到文件中,而仅将ERROR消息记录到另一个文件中.

使用阈值的问题是,如果我将一个appender阈值设置为INFO而另一个设置为ERROR,那么当我记录一条ERROR消息时,该消息会转到两个文件(appenders).

我怎样才能做到这一点?

提前致谢

java logging log4j

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

替换"^"char

我正在尝试使用以下命令替换String上的"^"字符:

String text = text.replaceAll("^", "put this text");
Run Code Online (Sandbox Code Playgroud)

如果文本为以下值:

"x^my string"
Run Code Online (Sandbox Code Playgroud)

生成的String是:

"put this textx^my string"
Run Code Online (Sandbox Code Playgroud)

这只发生在^角色的情况下

为什么是这样?

java regex string character

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

MongoDB安全问题

我对MongoDB安全性的信心受到了冲击,我正在跳过它,它会被解释为我做错了...

我已经创建了MongoDB的Windows服务,如下所示:

mongod --logpath"C:\ mongoDB\logs"--logappend --dbpath"C:\ mongoDB\data\db"--serviceName MongoDB --serviceDisplayName"Mongo DB"--port 27017 --auth --install

然后,我创建了一个数据库,并将管理用户添加到该数据库的system.users集合中.

然后我用一些随机信息将该数据库填入我创建的测试集合中.

到目前为止,一切都很好,只有拥有管理员凭据才能访问数据库...

现在重要的是......

我删除了这样的服务:

mongod --remove --serviceName"MongoDB"

然后我重新创建了服务,但没有像这样的身份验证:

mongod --logpath"C:\ mongoDB\logs"--logappend --dbpath"C:\ mongoDB\data\db"--serviceName MongoDB --serviceDisplayName"Mongo DB"--port 27017 --noauth --install

令我惊讶的是,我现在能够访问我用现在认证创建的数据库...

请告诉我,我应该采取不同的做法.

javascript java database security mongodb

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

Windows服务调试繁琐

我正在构建我的第一个Windows服务......真是一次冒险.

为了让我开始,我遵循以下walktrough:

http://msdn.microsoft.com/en-us/library/zt39148a.aspx#Y902

它的结构非常好而且有效!...这意味着我在创建的事件日志中获得了In onStart和In onStop日志消息.

现在,我的问题是:

每次更改服务代码时,我都需要重建安装项目,将服务项目添加为主项目输出并重新安装服务.

这是相当繁琐的,所以我问是否有更好的方法来测试和调试服务.

最好的祝福

.net windows-services

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