我已经嵌入了Jetty,我正在尝试设置初始化参数.
主类Main创建一个Cgi的servlet,它扩展了CGI.
在Main中,我有以下代码:
ServletContextHandler context2 = new ServletContextHandler(ServletContextHandler.SESSIONS);
context2.setContextPath("/cgi");
context2.setResourceBase("./cgi-bin");
context2.setInitParameter("commandPrefix", "perl");
context2.addServlet(new ServletHolder(new Cgi()), "/");
server.setHandler(context2);
Run Code Online (Sandbox Code Playgroud)
在Cgi中,我查看参数:
public void init(ServletConfig servletConfig) throws ServletException {
System.out.println(servletConfig.getInitParameter("commandPrefix"));
super.init(servletConfig);
}
Run Code Online (Sandbox Code Playgroud)
每次,它都会为getInitParameter调用输出null .然后,当Cgi确实需要使用它时,它不会,因为它没有设置.为什么会发生这种情况?
如果我定义一个模块模块与相应的目录module/,我可以动态加载来自子模块的类,如a.py或b.py?
-
模块
----a.py ----b.py
这需要知道要搜索的班级名称吗?我可以设置一个基类,以某种方式加载这些孩子?
基本用例是允许用户编写程序将加载的自己的一些代码.与rails允许您在某些目录中编写自己的控制器,视图和模型的方式相同.
到目前为止我动态加载模块的代码是
def load(folder):
files = {}
for filename in os.listdir(folder):
if (filename[0] != '_' and filename[0] != '.'):
files[filename.rstrip('.pyc')] = None
# Append each module to the return list of modules
modules = []
mod = __import__(folder, fromlist=files.keys())
for key in files.keys():
modules.append(getattr(mod, key))
return modules
Run Code Online (Sandbox Code Playgroud)
我希望修改它以返回类对象.
鉴于 mmap 的构造函数声明:
class mmap.mmap(fileno, length[, flags[, prot[, access[, offset]]]])
如何同时指定访问和偏移量?
该文件指出:
可以指定 access 代替 flags 和 prot 作为可选的关键字参数。同时指定标志、prot 和 access 是错误的。有关如何使用此参数的信息,请参阅上面的访问说明。
所以我试着做这样的事情
mmap.mmap(file_no, length, offset, access=mmap.ACCESS_COPY)mmap.mmap(file_no, length, access=mmap.ACCESS_COPY, offset=offset)
m = mmap.mmap(f.fileno(), 4, access=mmap.ACCESS_COPY, offset=2)
回溯(最近一次调用最后一次):
文件“”,第 1 行,在 mmap.error 中:[Errno 22] 无效参数
mmap.mmap(file_no, length, mmap.ACCESS_COPY, offset)
但我无法让它工作。为什么这让我如此困惑?
我正在使用SocketRocket库来处理连接到Websocket.它连接得很好,但我正在尝试运行一些必须首先等待WS连接的单元测试.由于知道WS已连接的唯一方法是通过其委托方法,因此我无法使此进程同步.我希望我的单元测试setup方法只是创建一个WS连接,然后tearDown关闭它.
我已经为我的Websocket类实现了两种类型的连接方法.前两个是非常基本的,我已经验证它们按预期工作.最后一个是我试图阻止它主要用于测试目的.我无法让它工作,它最终等待永远,所以我认为这是一个概念上的误解.
我想我的大问题是如何在测试用例中停止执行以等待对委托的回复?测试用例中出现的问题是我不能在完成块中完成所有测试 - 测试方法看到这只是成功并结束程序.
- (void)connect
{
DLog(@"Websocket is connecting now");
[_socket open];
}
- (void)connectWithCompletion:(WebsocketConnection)completion
{
DLog(@"Connecting now...");
[_onConnectBlocksToRun addObject:^{
completion(self.isConnected, self.socket);
}];
[_socket open];
}
- (bool)connectBlocking // XXX Doesn't work!
{
sem = dispatch_semaphore_create(0);
[_socket open];
dispatch_semaphore_wait(sem, DISPATCH_TIME_FOREVER);
return _isConnected;
}
#pragma mark - Socket rocket delegate
- (void)webSocketDidOpen:(SRWebSocket *)webSocket
{
DLog(@"Websocket has opened");
_isConnected = YES;
_socket = webSocket;
for (void(^block)() in _onConnectBlocksToRun) {
block();
}
[_onConnectBlocksToRun removeAllObjects]; …Run Code Online (Sandbox Code Playgroud) 例如,如果我希望挂载由环境变量定义的特定卷。
我有6个git子模块,每个子模块都有自己的子模块Dockerfile.我docker-compose.yml用这种格式设置了我:
a:
build: A
dockerfile: Dockerfile
ports:
- "9000:9000"
b:
build: B
dockerfile: Dockerfile
ports:
- "3000:3000"
c:
build: C
dockerfile: Dockerfile
ports:
- "3001:3001"
Run Code Online (Sandbox Code Playgroud)
我的Dockerfiles一些人为bower安装依赖项做了一步,但是当发生这种情况时,它会出现以下错误:
bower open-sans#~1.1.0解决git://github.com/bungeshea/open-sans.git#~1.1.0 bower foundation#~5.5.1 ECMDERR无法执行"git ls-remote --tags - -heads git://github.com/zurb/bower-foundation.git",退出代码为#128致命:不是git存储库:../.git/modules/C
其他错误详细信息:致命:不是git存储库:../.git/modules/C服务'web'无法构建:命令'/ bin/sh -c npm install && npm install -g bower && bower install - allow-root && npm install -g gulp && gulp build'返回非零代码:1
我正在使用Google的webapp框架.
我在下面尝试做的只是将query.fetch的结果发送到一个函数,该函数将获取结果并使用它们创建一个表.
class Utilities():
def create_table(results):
#Create a table for the results....
Run Code Online (Sandbox Code Playgroud)
变量results从query.fetch返回两个结果
results = query.fetch(10) #This returns two results
util = Utilities()
util.create_table(results)
Run Code Online (Sandbox Code Playgroud)
然后我得到了错误
util.create_table(results)TypeError:create_table()只取1个参数(给定2个)
我以为results会自动通过引用传递.我错了吗?
我有一长串的表格视图单元格.当我尝试从列表中获取其中一个帧时,我会得到类似的结果:(0, 508) (56, 320) (x,y)(height, width)
我想知道关于当前屏幕的这些坐标 - 在320x480范围内.在获得self.view.window(通过convertRange)方面的坐标后,我尝试过像508%480这样的事情,但我仍然没有看到我期待的结果.
我在单元格顶部初始化一个视图,然后伸展以填满整个屏幕.当单元格位于屏幕顶部时,这没有问题,但是当单元格在列表中较低时,它会导致错误的动画.
我收到一个包含多个属性的列表,如下所示:
results = q.fetch(5)
for p in results:
print "%s %s, %d inches tall" % (p.first_name, p.last_name, p.height
Run Code Online (Sandbox Code Playgroud)
是否有可能迭代这些属性,所以我可以做类似的事情for x in p.我想检查每一个的值,但我不想创建一个巨大的IF语句块.
有没有办法在运行时在Perl中加载整个模块?我以为我找到了一个很好的解决方案autouse但是下面的一些代码无法编译:
包tryAutouse2;
使用autouse'tryAutouse';
my $ obj = tryAutouse-> new();
我想这是因为autouse它特意用于导出函数,我是否正确?由于编译失败,是不可能有一个打包的解决方案?require如果我想要动态加载,我是否被迫在每个新模块调用之前?
这背后的原因是我的团队加载了很多模块,但我们担心这会占用内存.