我正在学习木偶并尝试在家里的虚拟机上进行试验.我还没有使用木偶服务器,只是在本地运行.它工作正常,但每次运行时puppet apply ...,我都会延迟几秒钟,然后显示消息
warning: Could not retrieve fact fqdn
Run Code Online (Sandbox Code Playgroud)
我假设消息与延迟有关,我想摆脱它(延迟 - 我可以忍受消息).谷歌搜索解决方案似乎表明它与DNS查找有某种关系,但我真的找不到任何关于它的东西,这似乎令人惊讶.我想要的就是能够快速地在我的vm中应用清单,这样我就可以进行实验.我怎样才能加快速度?
更新:我没有在调试输出中看到任何额外的信息,但它看起来像这样:
$ puppet apply -dv puppet-1.pp
warning: Could not retrieve fact fqdn
debug: Failed to load library 'rubygems' for feature 'rubygems'
debug: Failed to load library 'selinux' for feature 'selinux'
debug: Puppet::Type::File::ProviderMicrosoft_windows: feature microsoft_windows is missing
...
Run Code Online (Sandbox Code Playgroud)
更新:我添加了"ruby"标签,因为木偶的粉丝很少.如果这不属于红宝石,或者您知道更好的标签,请告诉我.
再次更新:我已经了解了更多关于puppet的内容,我现在明白这条消息来自名为"Facter"的组件,该组件嗅出了关于运行Puppet的系统的"事实".我找到了一些配置选项,并使用"certname","node_name"和"node_name_value",但我无法让延迟消失.有没有人具体知道如何告诉Facter忽略fqdn或如何让Facter能够在Ubuntu 11.10 vm上找到fqdn?
进展:
$ cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.1.1
Run Code Online (Sandbox Code Playgroud)
那是我的路由器,它通过Tomato运行Dnsmasq.
$ dig -x 192.168.1.129 192.168.1.1 …Run Code Online (Sandbox Code Playgroud) 有些人(例如在服务器端http://www.theserverside.com/news/thread.tss?thread_id=41473)建议使用ThreadLocal对象与使用全局变量一样糟糕.我想如果你把它们变成公共静态变量就行了.那么问题是很难分辨它的使用位置,改变的地方等等.
在我的春天DI tomcat web-app中,它似乎可以解决这个问题,如果我只是为了创建一个包含我的ThreadLocal的单例对象,然后将该单例注入任何需要它的类中.
所以我的单身人士看起来像这样:
@Component
public class Username {
private ThreadLocal<String> username;
public Username() {
username = new ThreadLocal<String>();
}
public String getUsername()
return username.get();
}
public void setUsername(String name) {
username.set(name);
}
}
Run Code Online (Sandbox Code Playgroud)
可能需要它的类看起来像这样:
@Service
public class addEntryTransaction {
@Autowired
Username username;
public void method() {
...
log("Method called by "+username.getUsername());
...
}
}
Run Code Online (Sandbox Code Playgroud)
这仍然具有不必通过许多不关心的层传递用户名的好处,因此保持方法参数更简单.@Autowired是此类使用该变量的声明.
这种方法有哪些优缺点?
我有分析瘫痪,查看新grails(v1.3.4)应用程序的所有不同功能测试选项.我看了看
而且必须有其他人.我认为我将用于做出决定的一些标准包括(没有特别的顺序):
我会特别感兴趣的是那些试过多个框架的人.谢谢!
我的同事和我有一个Web应用程序,它在MyEclipse里面的Tomcat上使用Spring 3.0.0和JPA(hibernate 3.5.0-Beta2).其中一个数据结构是树.为了好玩,我们尝试使用JMeter对"插入节点"操作进行压力测试,并发现了并发问题.Hibernate报告在发出如下警告之后发现具有相同私钥的两个实体:
WARN [org.hibernate.engine.loading.LoadContexts] fail-safe cleanup (collections) : ...
Run Code Online (Sandbox Code Playgroud)
如果多个线程同时调用insert()方法,很容易看出这些问题可能会发生.
我的servlet A调用服务层对象B.execute(),然后调用较低层对象C.insert().(真正的代码太大了,不能发布,所以这有点删节.)
Servlet A:
public void doPost(Request request, Response response) {
...
b.execute(parameters);
...
}
Run Code Online (Sandbox Code Playgroud)
服务B:
@Transactional //** Delete this line to fix the problem.
public synchronized void execute(parameters) {
log("b.execute() starting. This="+this);
...
c.insert(params);
...
log("b.execute() finishing. This="+this);
}
Run Code Online (Sandbox Code Playgroud)
子服务C:
@Transactional
public void insert(params) {
...
// data structure manipulation operations that should not be
// simultaneous with any other manipulation operations called by B.
...
}
Run Code Online (Sandbox Code Playgroud)
我所有的状态更改调用都通过B,所以我决定创建B.execute() …
我有一个遗留的Windows窗体应用程序,我希望像Web应用程序一样显示内部用户的浏览器(IE8).我一直在研究的方法是创建一个Windows窗体库(dll)并在浏览器中显示它.有很多网页告诉我如何做到这一点:
但我无法让它发挥作用.我已经制作了一个简单的Windows控件库,并构建了DLL.我把它放在IIS 7.5站点的顶级目录中,以及一个像这样的html文件:
<html>
<body>
<object id='c' classid='http:TestWinCtrlLib.dll#TestWinCtrlLib.UserControl1' height='300' width='400'>
</object>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我的浏览器显示一个300x400的盒子,左上角有一个小的"图片"图标.起初,IIS拒绝提供.dll文件,提供403.2和401.2错误,但现在我已正确设置IIS持久性属性,日志表明它正在成功提供.
2012-05-01 01:28:50 ::1 GET /form.html - 8008 - ::1 Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+6.1;+WOW64;+Trident/4.0;+SLCC2;+.NET+CLR+2.0.50727;+.NET+CLR+3.5.30729;+.NET+CLR+3.0.30729;+.NET4.0C;+.NET4.0E) 200 0 0 1
2012-05-01 01:28:50 ::1 GET /TestWinCtrlLib.dll - 8008 - ::1 Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+6.1;+WOW64;+Trident/4.0;+SLCC2;+.NET+CLR+2.0.50727;+.NET+CLR+3.5.30729;+.NET+CLR+3.0.30729;+.NET4.0C;+.NET4.0E) 200 0 0 23
Run Code Online (Sandbox Code Playgroud)
我甚至不知道出了什么问题.上面的第一个链接有一个关于错误报告的部分,我已将这些密钥添加到注册表中,但我没有看到任何错误.我尝试从cmd提示符启动iexplore,以防错误显示在标准输出上,但什么都没有.
错误报告
代码下载过程使用以下两个注册表设置来控制使用Internet Explorer部署的托管代码可执行文件的错误报告.
- HKLM\SOFTWARE\Microsoft.NETFramework\ExposeExceptionsInCOM
- HKCU\SOFTWARE\Microsoft.NETFramework\ExposeExceptionsInCOM
...
调试使用Internet Explorer部署的托管代码时,可以使用这些设置的值来查找有关代码下载失败的详细信息.例如,这允许您在抛出异常时查看堆栈跟踪信息,而不是依赖Internet Explorer提供的错误报告,而Internet Explorer是为最终用户而非开发人员设计的.
是否可能不再支持此功能?我发现的大多数参考文献似乎都是2007-2010.也许ClickOnce是现在唯一的方法.我可以让它工作,但代码运行在自己的窗口,而不是在浏览器内.
我尝试使用.Net frameworks 3.5 Client Profile和4.0 Client Profile编译库.但他们似乎给出了同样的结果.
欢迎任何帮助 - 谢谢.
我试图在IE7中使用> CSS子选择器,它似乎不起作用.我有嵌套表.我的外表有一个类名"mytable",我希望外表的td显示边框.我不希望内表td有边框.
我想我应该能够拥有如下所示的CSS:
.mytable { border-style: solid }
.mytable>tr>td { border-style: solid }
Run Code Online (Sandbox Code Playgroud)
但第二行似乎没有效果.如果我更改第二行以使其不那么具体,它适用于所有td - 我看到太多边框.
td { border-style: solid }
Run Code Online (Sandbox Code Playgroud)
所以我认为这只是选择器的一个问题.像这样的页面表明IE7应该能够做我想要的.我做傻事吗?
这是整个HTML文件:
<html>
<head>
<style type="text/css">
.mytable { border-style: solid; border-collapse: collapse;}
td { border-style: solid; }
</style>
</head>
<body>
<table class="mytable">
<tr>
<td>Outer top-left</td>
<td>Outer top-right</td>
</tr>
<tr>
<td>Outer bottom-left</td>
<td>
<table>
<tr>
<td>Inner top-left</td>
<td>Inner top-right</td>
</tr>
<tr>
<td>Inner bottom-left</td>
<td>Inner bottom-right</td>
</tr>
<table>
</td>
</tr>
<table>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 我正在玩一个带有上下文菜单的grails应用程序(右键单击).上下文菜单是使用Chris Domigan的jquery contextmenu插件构建的.
虽然上下文实际上有效,但我想进行自动化测试,而我无法确定如何做到这一点.
我正在考虑收集服务器数据,并在那些服务器中预安装Python 2.6.现在我想知道是否有Python库对应Ruby的"facter",而不是Python的"绑定"因为facter.
我用Google搜索但却找不到任何东西.有没有人对此有任何想法?
我正在尝试让 MSMQ 5 在我的两台 Windows Server 2008 R2 虚拟机上运行。我可以发送到本地和远程专用队列,并且可以从本地专用队列中读取。我无法从远程专用队列中读取数据。
我读过很多建议,尤其是 John Breakwell 在MSMQ Issue Reading Remote PrivateQueues (again)中总结的建议。
我已经做过的事情:
发送代码片段是:
MessageQueue queue = new MessageQueue(queueName, false, false, QueueAccessMode.Send);
Message msg = new Message("Blah");
msg.UseDeadLetterQueue = true;
msg.UseJournalQueue = true;
queue.Send(msg, MessageQueueTransactionType.Automatic);
queue.Close();
Run Code Online (Sandbox Code Playgroud)
接收代码片段为:
queueName = String.Format("FormatName:DIRECT=OS:{0}\\private$\\{1}",host,id);
queue = new MessageQueue(queueName, QueueAccessMode.Receive);
queue.ReceiveCompleted += new ReceiveCompletedEventHandler(receive);
queue.BeginReceive();
Run Code Online (Sandbox Code Playgroud)
...
public void receive(object sender, ReceiveCompletedEventArgs e)
{
queue.EndReceive(e.AsyncResult);
Console.WriteLine("Message received");
queue.BeginReceive(); …Run Code Online (Sandbox Code Playgroud) 对于我的自动验收测试,我希望插入以id = 1开头。我在一台PC(XP 32位,mysql 5.1.something)上实现了此目的(从表中删除所有行之后),“更改表tableName auto_increment = 0”。
我现在正在设置一台新的PC(Windows 7 64bit,mysql 5.1.42),该命令似乎无效。我可以在information_schema.tables表中看到,auto_increment值未更改回0 ---一直在增加。如果尝试直接更改该表中的值,则会被告知拒绝对“ root” @“ localhost”的访问。这是否可以暗示我的问题?
其他stackoverflow人士建议“从tableName截断”是一个不错的选择。我很高兴地报告这可行。但是有人知道为什么“ alter table”命令不会重置auto_increment吗?
谢谢!
我正在使用Grails-1.2.1 跟踪Jason Rudolph在InfoQ上的书中的赛道示例.我到了我要从hsqldb切换到mysql的部分.我想我已经删除了DataSource.groovy文件中对hsqldb的每个引用,但是我得到了一个异常,堆栈跟踪显示它仍在使用hsqldb.
DataSource.groovy的
dataSource {
boolean pooled = true
String driverClassName = "com.mysql.jdbc.Driver"
String url = "jdbc:mysql://localhost/dfpc2"
String dbCreate = "create"
String username = "dfpc2"
String password = "dfpc2"
dialect = org.hibernate.dialect.MySQL5InnoDBDialect
}
hibernate {
cache.use_second_level_cache=true
cache.use_query_cache=true
cache.provider_class='net.sf.ehcache.hibernate.EhCacheProvider'
}
// environment specific settings
environments {
development {
}
test {
}
production {
}
}
Run Code Online (Sandbox Code Playgroud)
当我grails run-app全部启动没有错误.我可以导航到主页.但是当我点击其中一个链接时,我得到一个堆栈跟踪:
java.sql.SQLException: Table not found in statement [select this_.id as id0_0_, this_.version as version0_0_, this_.name as name0_0_, this_.variant as …Run Code Online (Sandbox Code Playgroud) facter ×2
grails ×2
spring ×2
.net ×1
alter-table ×1
concurrency ×1
contextmenu ×1
css ×1
datasource ×1
groovy ×1
hibernate ×1
htmlunit ×1
java ×1
jpa ×1
msmq ×1
mysql ×1
puppet ×1
python ×1
ruby ×1
selenium ×1
synchronized ×1
testing ×1
transactions ×1
truncate ×1
webdriver ×1
winforms ×1