小编Rya*_*ins的帖子

如何使用Log4j更改包的日志级别?

我遇到了以下错误:

http://issues.apache.org/jira/browse/AXIS2-4363

它陈述如下:

仅当org.apache.axiom的日志级别为DEBUG时才会出现此错误,因此解决方法是设置日志级别> DEBUG.

我的问题是如何做到这一点?我一直在搜索我的目录中的属性文件或其他东西,我一直在寻找是否有我可以在代码中设置的东西,但我真的不知道我在做什么.我现在正在桌面上运行一个控制台应用程序,同时试图让它工作.

更新1:我注意到我的Axis2目录在其根目录中有自己的log4j.properties文件.这是安全忽略还是解决方案的一部分(或问题的一部分)?

更新2:根目录log4j.properties文件显然未正确设置.现在它看起来像这样:

log4j.rootLogger=DEBUG, R 
log4j.logger.org.apache.axiom=WARN
log4j.appender.R=org.apache.log4j.RollingFileAppender 
log4j.appender.R.MaxFileSize=10MB 
log4j.appender.R.MaxBackupIndex=10 
log4j.appender.R.layout=org.apache.log4j.PatternLayout 
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
Run Code Online (Sandbox Code Playgroud)

但这显然是错误的,因为此代码返回"Log level is null":

System.out.println("Log level is " + logger.getLevel());
Run Code Online (Sandbox Code Playgroud)

现在我正在使用代码设置日志级别

Logger logger = Logger.getLogger("org.apache.axiom");
logger.setLevel(Level.WARN);
Run Code Online (Sandbox Code Playgroud)

java logging axis2 log4j axiom

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

jQuery - 创建复杂HTML片段的最佳实践

在jQuery中创建一些复杂的HTML元素是否有一般的最佳实践?我尝试了几种不同的方法.

首先,我尝试使用createElement并将其与AppendTo等链接在一起:

var badge = $(document.createElement("div")).attr("class", "wrapper1").appendTo("body");
$(document.createElement("div")).attr("class", "wrapper2").appendTo(".wrapper1");
$(document.createElement("table")).attr("class", "badgeBody").appendTo(".wrapper2");
$(document.createElement("tr")).attr("class", "row1").appendTo(".badgeBody");
$(document.createElement("td")).appendTo(".row1");
$(document.createElement("span")).attr("class", "badgeUnlocked").text("UNLOCKED! ").appendTo("td");
$(document.createElement("td")).attr("class", "badgeTitleText").appendTo(".row1");
$(document.createElement("span")).attr("class", "badgeTitle").text(name).appendTo(".badgeTitleText");
$(document.createElement("tr")).attr("class", "row2").appendTo(".badgeBody");
$(document.createElement("td")).appendTo(".row2");
$(document.createElement("img")).attr("src", imgUrl).appendTo(".row2 td");
$(document.createElement("td")).attr("class", "badgeText").appendTo(".row2");
$(document.createElement("span")).attr("class", "badgeDescription").text(description).appendTo(".badgeText");
Run Code Online (Sandbox Code Playgroud)

这可能很粗糙,因为appendTo想要添加到每个匹配元素,所以一切都需要自己的名字,否则它最终会在整个地方重复添加.

然后我尝试创建一个数组并将它们连接在一起:

var badgeFragment = [
'<div><div id="'+ closeId+'" class="closeTab">X</div>',
'<div id="'+ badgeId+'" class="wrapper1">',
'<div class="wrapper2">',
'<div class="badgeBody">',
'<div class="badgeImage">',
'<img src="'+ imgUrl +'">',
'</div>',
'<div class="badgeContents">',
'<div class="badgeUnlocked">ACHIEVEMENT UNLOCKED: </div>',
'<div class="badgeTitle">'+ name +'</div>',
'<div id="'+ textId+'" class="badgeDescription">'+ description +'</div>',
'</div>',
'<div style="clear:both"></div>',
'</div></div></div></div></div>',
]

badgeFragment = $(badgeFragment.join('')); …
Run Code Online (Sandbox Code Playgroud)

html jquery

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

在JavaScript/HTML中嵌套引号

如何在第二级以外的HTML中嵌套引号?据我所知,只有两种类型的引号 - single(')和double(").我知道使用斜杠转义 - 你必须在代码中转义但转义不能在浏览器级别工作什么是可以接受的方法来解决以下问题?

<p onclick="exampleFunc('<div id="divId"></div>');">Some Text</p>
Run Code Online (Sandbox Code Playgroud)

该代码打印到浏览器:

');">一些文字

html javascript quotes

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

针对后台应用程序的Salesforce.com API身份验证的最佳实践

Salesforce.com API似乎假设您将始终将该应用程序用作活动用户.他们的身份验证方法(会话ID和OAuth)支持这一点,因为他们都需要经过身份验证的用户"做某事".

当您拥有需要访问API的后台应用程序时,该策略是什么?我见过的示例要求您提供完整凭据 - 用户名,密码和安全令牌.我不仅不想知道或存储该信息,而且可以更改(从密码策略等),因此我宁愿不让应用程序中断.

对于不需要用户交互的SFDC API进行长期认证的"最佳实践"是什么?

authentication api salesforce

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

从JDBC MSSQL获取返回值

我使用Microsoft SQL Server JDBC Driver 2.0通过Java连接到SQL Server(2005).

如何从存储过程中获取返回值?我做的事情如下:

Connection connection = dataSource.getConnection()
CallableStatement proc = connection.prepareCall("{ call dbo.mySproc() }");
proc.execute();
Run Code Online (Sandbox Code Playgroud)

我应该使用execute()吗?的executeQuery()?的executeUpdate()?这些似乎都没有默认返回值,但我不确定如何实现它.

编辑1:要清楚,我知道如何调用存储过程.这个问题具体是关于如何获得返回值(而不是结果集).返回值是一个整数,通常在执行没有结果集的查询时生成,或者您RETURN 0在SQL中特别声明了类似的内容.

编辑2:executeUpdate()返回一个int,但是这个int与返回值不同.此外,OUT参数与返回值不同.

java sql-server stored-procedures jdbc return-value

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

何时使用自定义例外与现有例外与一般例外

我正在试图弄清楚正在写的库的正确形式是什么.我需要处理的一个例子是将用户登录到工作站.他们通过扫描徽章来做到这一点.可能出错的可能包括:

  • 他们的徽章已停用
  • 他们没有在这个工作站工作的许可
  • 扫描的徽章在系统中不存在
  • 他们已经登录到其他地方
  • 数据库已关闭
  • 内部数据库错误(如果徽章没有正确设置,有时会发生)

使用此库的应用程序必须以这种或那种方式处理这些异常.他们可能决定只说"错误",或者他们可能想要给用户更多有用的信息.在这种情况下,最佳做法是什么?为每种可能性创建自定义异常?使用现有的例外?使用Exception并传入reason(throw new Exception("Badge is deactivated.");)?我认为它是前两种的混合,在适用的情况下使用现有的异常,并在需要时创建新的异常(并在有意义的地方对异常进行分组).

exception

11
推荐指数
3
解决办法
5275
查看次数

如何从GZIPed数据的InputStream中获取解压缩数据的InputStream?

我调用一个返回gzip压缩文件的服务.我javax.activation.DataHandler.getInputStream();从响应中将数据作为InputStream(礼貌).

我想要做的是,在不向磁盘写入任何内容的情况下,在归档文件中的文件中获取解压缩数据的InputStream.在这种情况下,压缩文件是一个xml文档,我试图解组使用javax.xml.bind.Unmarshaller它来获取InputStream.

我正在尝试将InputStream写入OutputStream(解压缩数据),然后我需要将其写回InputStream.它还没有工作,所以我想我会看看是否有更好的(我希望如此)方法.

我可以将初始InputStream写入磁盘并获取一个gz文件,然后读取该文件,从中获取压缩文件并从那里开始,但我宁愿将其全部保存在内存中也是可能的.

更新1:这是我的当前(不工作 - 得到"不是GZIP格式"的例外):

    ByteArrayInputStream xmlInput = null;
    try {
        InputStream in = dh.getInputStream(); //dh is a javax.activation.DataHandler
        BufferedInputStream bis = new BufferedInputStream(in);
        ByteArrayOutputStream bo = new ByteArrayOutputStream();
        int bytes_read = 0;
        byte[] dataBuf = new byte[4096];
        while ((bytes_read = bis.read(dataBuf)) != -1) {
            bo.write(dataBuf, 0, bytes_read);
        }
        ByteArrayInputStream bin = new ByteArrayInputStream(bo.toByteArray());
        GZIPInputStream gzipInput = new GZIPInputStream(bin);
        ByteArrayOutputStream out = new ByteArrayOutputStream();
        dataBuf = new byte[4096];;
        bytes_read = 0;
        while ((bytes_read = …
Run Code Online (Sandbox Code Playgroud)

java io gzip gzipinputstream

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

TSql Trigger只需要在值已更改的列上触发

我写了一个触发器,需要根据实际更新的行中的哪些列对表执行一些不同的工作.我完成了这个

IF UPDATE(column-name)
Run Code Online (Sandbox Code Playgroud)

那部分工作正常.然而,事实证明,代码的其他部分通过设置每个值来更新行,无论值是否实际更改,这会导致触发器触发"已更新"但其值实际上未更改的部分一点都不

由于更改导致此问题的代码可能不是一个选项,除了必须在INSERTED和DELETED表之间进行比较之外,是否有更简单的方法来防止这种情况(在这种情况下,IF UPDATE是没有意义的)?

t-sql sql-server triggers

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

跨插件的WordPress中的自定义挂钩

我正在尝试在一个可以被其他插件使用的Wordpress插件中创建一个钩子.首先,这甚至可能吗?我还发送了一些额外的args,所以这可能是两个问题,因为我一直无法找到关于如何做到这一点的确切信息.

这是我到目前为止所尝试的:

在创建钩子的插件中(称之为插件1)我添加了:

do_action('plugin1_hook', $customArg1, $customArg2, $customArg3);
Run Code Online (Sandbox Code Playgroud)

在我希望钩子发射的那一刻.然后,在另一个插件(插件2)中,我添加了:

add_action('plugin1_hook', 'my_function');
Run Code Online (Sandbox Code Playgroud)

function my_function($customArg1, $customArg2, $customArg3) { //my code }
Run Code Online (Sandbox Code Playgroud)

但是,这似乎并没有解雇这个功能.我对此的反驳是Wordpress钩子comment_post,它由Wordpress定义为:

do_action('comment_post', $comment_ID, $commentdata['comment_approved']);
Run Code Online (Sandbox Code Playgroud)

我用的是:

add_action('comment_post', 'my_comment'); 
function my_comment($comment_id) { //my code }
Run Code Online (Sandbox Code Playgroud)

以上代码段正常运行.

php wordpress hook

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

您能否以编程方式确定用户是否获得了包的许可?

我正在使用LMA(许可证管理应用程序),并想知道是否可以通过programmaticaly告诉用户是否已获得我的包的许可.

想象一下,如果我希望应用程序的用户看到彼此的应用程序特定数据 - 至少我需要一个许可使用该应用程序的用户列表.

这可能吗?我希望能够根据用户是否通过LMA的"管理许可"流程授予用户许可席位,来为包添加代码,以便做出决策.

更新:我发现您可以通过UserInfo.isCurrentUserLicensed(命名空间)方法判断当前登录的用户是否获得许可- 但到目前为止无法获取所有许可用户的列表.

salesforce apex-code

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