在ASP .NET项目(C#)上,我使用System.Diagnostics命名空间来记录错误,警告和信息.使用Windows 7我看到我为项目设置的日志位于"应用程序和服务日志"下.如何设置代码以创建文件夹并将其放在"应用程序和服务日志[某些文件夹] \应用程序和服务日志"下,例如?
我有一个带有 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 参数。
期待您的评论。
我有一个 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我不想\xe2\x80\x99 不想在 SAN 证书上指定 IP,因为如果实例 1所在服务器的 …
我有一个可以接受一个字符串的.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默认值(这有多么愚蠢!)
两种选择之一
在Web服务上有某种属性,将""设置为null
在课堂上有一些条件
我更喜欢第一,因为它使代码更清晰,但意见会很好.
谢谢
我正在使用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:密码不正确.
我需要先做什么?
我有一个已添加到 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...仍在研究解决方案
我正在为我的一个项目使用log4j,我知道可以为每个appender设置阈值.
我的目标是仅将INFO消息记录到文件中,而仅将ERROR消息记录到另一个文件中.
使用阈值的问题是,如果我将一个appender阈值设置为INFO而另一个设置为ERROR,那么当我记录一条ERROR消息时,该消息会转到两个文件(appenders).
我怎样才能做到这一点?
提前致谢
我正在尝试使用以下命令替换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)
这只发生在^角色的情况下
为什么是这样?
我对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
令我惊讶的是,我现在能够访问我用现在认证创建的数据库...
请告诉我,我应该采取不同的做法.
我正在构建我的第一个Windows服务......真是一次冒险.
为了让我开始,我遵循以下walktrough:
http://msdn.microsoft.com/en-us/library/zt39148a.aspx#Y902
它的结构非常好而且有效!...这意味着我在创建的事件日志中获得了In onStart和In onStop日志消息.
现在,我的问题是:
每次更改服务代码时,我都需要重建安装项目,将服务项目添加为主项目输出并重新安装服务.
这是相当繁琐的,所以我问是否有更好的方法来测试和调试服务.
最好的祝福