问题列表 - 第13850页

哪个java webserver最适合这里?

我正在开发一个包含以下3个组件的简单Web应用程序:

  1. 使用Ajax,javascript,html在浏览器上显示数据的客户端.
  2. 在客户端和数据处理实体之间进行接口的Java Web服务器.
  3. 数据处理实体,用C++实现.

我需要决定使用哪个java webserver.一些选项是:

a)在java(com.sun.net.httpserver)中使用httpserver类并创建一个多线程进程.

b)使用Glassfish服务器并在其上部署创建网页的应用程序等.

c)使用Jetty.

d)?

网络服务器的选择标准是:

  1. 稳定性(进程(Web服务器)应该运行几天而不重启)

  2. 可能的最大并发请求大约为200.平均情况大约为30.

  3. 缓存在Web服务器上完成,如果数据可用或数据处理实体未标记为脏,则从Web服务器本身提供请求.

非常感谢您的建议.

谢谢.罗恩.

webserver web-applications jetty glassfish httpserver

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

Python Eval:这段代码出了什么问题?

我正在尝试编写一个非常简单的Python实用程序供个人使用,它计算文本文件中为命令行指定的谓词为true的行数.这是代码:

import sys

pred = sys.argv[2]
if sys.argv[1] == "stdin" :
    handle = sys.stdin
else :
    handle = open(sys.argv[1])
result = 0
for line in handle :
    eval('result += 1 if ' + pred + ' else 0')
print result
Run Code Online (Sandbox Code Playgroud)

当我使用它运行时python count.py myFile.txt "int(line) == 0",我收到以下错误:

  File "c:/pycode/count.py", line 10, in <module>
    eval('toAdd = 1 if ' + pred + ' else 0')
  File "<string>", line 1
    toAdd = 1 if int(line) == 0 else 0
Run Code Online (Sandbox Code Playgroud)

这看起来对我来说是完全有效的Python代码(虽然我之前从未使用过Python的eval,所以我不知道它的怪癖,如果有的话).请告诉我如何解决这个问题才能让它发挥作用.

python eval syntax-error

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

Python可以编码一个字符串来匹配ASP.NET成员资格提供程序的EncodePassword

我正在研究一个Python脚本来从类似于ASP.NET的MembershipProvider的现有系统创建散列字符串.使用Python,有没有办法获取十六进制字符串并将其转换回二进制文件然后执行base64编码,以某种方式将原始字符串视为Unicode.我们来试试吧.我想重新编码一个哈希密码,以便在Python和ASP.NET/C#中哈希值相等:

import base64
import sha
import binascii

def EncodePassword(password):
    # strings are currently stored as hex
    hex_hashed_password = sha.sha(password).hexdigest()

    # attempt to convert hex to base64
    bin_hashed_password = binascii.unhexlify(hex_hashed_password)
    return base64.standard_b64encode(bin_hashed_password)

print EncodePassword("password")
# W6ph5Mm5Pz8GgiULbPgzG37mj9g=
Run Code Online (Sandbox Code Playgroud)

ASP.NET MembershipProvider使用此方法进行编码:

static string EncodePassword(string pass)
{
    byte[] bytes = Encoding.Unicode.GetBytes(pass);
    //bytes = Encoding.ASCII.GetBytes(pass);

    byte[] inArray = null;
    HashAlgorithm algorithm = HashAlgorithm.Create("SHA1");
    inArray = algorithm.ComputeHash(bytes);
    return Convert.ToBase64String(inArray);
}

string s = EncodePassword("password");
// 6Pl/upEE0epQR5SObftn+s2fW3M=
Run Code Online (Sandbox Code Playgroud)

那不匹配.但是,当我使用ASCII编码编码的密码运行它时,它匹配,所以.NET方法的Unicode部分是有区别的.

W6ph5Mm5Pz8GgiULbPgzG37mj9g =

在python脚本中是否有一种方法可以获得与默认.NET版本匹配的输出?

.net c# python asp.net unicode

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

Java:使用最少的用户信息查询Active Directory信息

所以,情况就是这样.我们希望能够查询活动目录以获取用户的角色/组成员身份等.现在,我已经可以使用标准Java API(javax.naming)来做到这一点,但我需要一个用户名,域服务器名称/地址,和密码来做到这一点.用户也拥有有限的权限,因此我不能使用任何外部调用来使用花哨的管理工具.

在Java中,有没有办法只使用用户名和域服务器名称/地址来获取该信息?我也对第三方软件包持开放态度.或者,您可以向我提供(或指向)有关在AD中配置的内容的信息以允许此操作.

希望这是有道理的.我不是AD大师,所以信息越多越好.

java ldap active-directory

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

.NET中API破坏性更改的权威指南

我想尽可能多地收集有关.NET/CLR中API版本控制的信息,特别是API更改如何破坏客户端应用程序.首先,让我们定义一些术语:

API更改 - 类型的公开可见定义的更改,包括其任何公共成员.这包括更改类型和成员名称,更改类型的基本类型,从类型的已实现接口列表添加/删除接口,添加/删除成员(包括重载),更改成员可见性,重命名方法和类型参数,添加默认值对于方法参数,在类型和成员上添加/删除属性,以及在类型和成员上添加/删除泛型类型参数(我错过了什么吗?).这不包括成员团体的任何变化,或私人成员的任何变化(即我们不考虑反射).

二进制级别中断 - 一种API更改,导致针对旧版本API编译的客户端程序集可能无法加载新版本.示例:更改方法签名,即使它允许以与之前相同的方式调用(即:void返回类型/参数默认值重载).

源级别中断 - 一种API更改,导致编写现有代码以针对旧版本的API进行编译,可能无法使用新版本进行编译.然而,已经编译的客户端程序集像以前一样工作.示例:添加一个新的重载,这可能导致前一个明确的方法调用不明确.

源级安静语义更改 - 一种API更改导致编写的现有代码针对旧版API进行编译,从而悄然改变其语义,例如通过调用不同的方法.但是,代码应该继续编译而不会出现警告/错误,以前编译的程序集应该像以前一样工作.示例:在现有类上实现新接口,导致在重载解析期间选择不同的重载.

最终目标是尽可能地对尽可能多的破坏和静默语义API更改进行编目,并描述破坏的确切影响,以及哪些语言受其影响并且不受其影响.扩展后者:虽然一些变化普遍影响所有语言(例如,向接口添加新成员将破坏任何语言中该接口的实现),但有些需要非常特定的语言语义才能进入游戏以获得休息.这通常涉及方法重载,并且通常涉及与隐式类型转换有关的任何事情.似乎没有任何方法可以在这里定义"最小公分母",即使对于符合CLS的语言(即至少符合CLI规范中定义的"CLS使用者"规则的那些语言) - 尽管我会很感激,如果有人在这里纠正我错了 - 所以这必须按语言去语言.那些最感兴趣的东西自然就是开箱即用的.NET:C#,VB和F#; 但其他人,如IronPython,IronRuby,Delphi Prism等也是相关的.它的角落越多,它就越有趣 - 删除成员之类的东西是不言而喻的,但是例如方法重载,可选/默认参数,lambda类型推断和转换运算符之间的微妙交互可能会非常令人惊讶有时.

举几个例子来启动这个:

添加新方法重载

种类:源级休息

受影响的语言:C#,VB,F#

更改前的API:

public class Foo
{
    public void Bar(IEnumerable x);
}
Run Code Online (Sandbox Code Playgroud)

更改后的API:

public class Foo
{
    public void Bar(IEnumerable x);
    public void Bar(ICloneable x);
}
Run Code Online (Sandbox Code Playgroud)

示例客户端代码在更改之前工作并在其之后中断:

new Foo().Bar(new int[0]);
Run Code Online (Sandbox Code Playgroud)

添加新的隐式转换运算符重载

种类:源级休息.

受影响的语言:C#,VB

语言不受影响:F#

更改前的API:

public class Foo
{
    public static implicit operator int ();
}
Run Code Online (Sandbox Code Playgroud)

更改后的API:

public class Foo
{
    public static implicit operator int …
Run Code Online (Sandbox Code Playgroud)

.net versioning api clr cls-compliant

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

用于 Web 皮肤/主题的 VCL?

有人为 Intraweb/VCL for Web 创建了皮肤/主题包装吗?

网格等的默认外观非常过时。

任何信息表示赞赏。

delphi skins vcl themes intraweb

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

我应该使用事件通知课程还是仅使用返回?

我今天对事件和代表们都很敏感,并且这样做,我一直在想着体验吧,那些来自游戏的进步栏.但我对解决问题的更好方法有疑问 - 它可能就像糟糕的设计一样简单.我来为您提供一些细节.

我用ExperienceBar类建模了我的想法.

它包含属性:

  • int StartValue
  • int CurrentValue
  • int EndValue

和方法

  • void UpdateBar(int)

UpdateBar将参数添加到CurrentValue,然后测试它是否已达到EndValue.如果超过金额,则EndValue会增加,金额会继续.请注意,最初在我的想法中,它并不关心达到可能的最大量的效果,只是结束值增加并且StartValue被重置为零.

另一个名为Player的类具有类ExperienceBar的属性.

在我的小演示中,当Player.ExperienceBar.UpdateBar(int)到达EndValue时,它会触发一个由Player类处理的事件.它将Player.Level属性更新为1.

我刚刚意识到只需将UpdateBar(int)更改为返回类型"true"即可实现相同的功能.此方法可以由Player类测试,当为true时,Player.Level增加1.

所以我的问题 - 这是处理这种特殊环境的最佳实践方法吗?作为这种情况的一般经验法则,处理事件是否更好,或者只是通过测试return语句来保持简单?

PS:我希望我尽可能清楚地表明这一点,但我可以尝试澄清是否有人遇到麻烦.我相信我的想法可能已经存在一些冗余,但请尽量不要偏离这个问题.我很清楚他们!谢谢 :)

c# events event-handling

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

使用C#中的SmtpClient发送电子邮件时出现问题

我有一个ASP.Net/MVC应用程序,我正在尝试发送HTML电子邮件.我这样做是通过读取带有令牌的HTML文件,然后替换令牌.那部分很好,生成的HTML正是我想要的,但是当我发送电子邮件时,我收到的内容看起来像 -

<style type=3D"text/css">=
=0D=0A.styleTitles=0D=0A{=0D=0Afont-weight:=bold;=0D=0A}=0D=0A 
.style1=0D=0A        {=0D=0A 
Run Code Online (Sandbox Code Playgroud)

应该看起来像

    <style type="text/css">
    .styleTitles
    {
        font-weight: bold;
    }
    .style1
    {
        height: 15px;
    }
Run Code Online (Sandbox Code Playgroud)

我在网上看了一下,似乎无法找到发送消息的正确语法.我见过一些解决方案,但似乎都没有.

我目前的测试代码是 -

SmtpClient smtpclient = new SmtpClient();
MailMessage message = new MailMessage();

MailAddress SendFrom = new MailAddress("xxxx@abc.com");
MailAddress SendTo = new MailAddress("zzzz@gmail.com");
MailMessage MyMessage = new MailMessage(SendFrom, SendTo);

var plainView = AlternateView.CreateAlternateViewFromString(msgBody,null,"text/html");
plainView.TransferEncoding = System.Net.Mime.TransferEncoding.SevenBit;
MyMessage.AlternateViews.Add(plainView);
MyMessage.IsBodyHtml = true;
MyMessage.Subject = subjectLine;
MyMessage.Body = msgBody;
smtpclient.Send(MyMessage);
Run Code Online (Sandbox Code Playgroud)

有什么建议?

c# asp.net-mvc

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

为什么它被称为'wchar_t'而不仅仅是'wchar'?

我经常想知道为什么C++的名字wchar_t不是简单的wchar,而且我从来没有找到答案.搜索引擎没有帮助,因为他们认为我在询问Windows的WCHAR类型.有任何想法吗?

c c++ terminology

24
推荐指数
3
解决办法
2204
查看次数

如何将文件集打印到文件,每行一个文件名?

我有一个填充的文件集,我需要将匹配的文件名打印到文本文件中.

我试过这个:

<fileset id="myfileset" dir="../sounds">
    <include name="*.wav" />
    <include name="*.ogg" />
</fileset>

<property name="sounds" refid="myfileset" />
<echo file="sounds.txt">${sounds}</echo>
Run Code Online (Sandbox Code Playgroud)

它将所有文件打印在一行中,以分号分隔.我需要每行一个文件.如何在不诉诸OS命令或编写Java代码的情况下完成此操作?

更新:

啊,应该更具体 - 列表不得包含目录.无论如何,我将ChssPly76标记为已接受的答案,因为pathconvert命令正是我所缺少的.要剥离目录并仅列出文件名,我使用了"flatten"映射器.

这是我最终得到的脚本:

<fileset id="sounds_fileset" dir="../sound">
    <include name="*.wav" />
    <include name="*.ogg" />
</fileset>

<pathconvert pathsep="&#xA;" property="sounds" refid="sounds_fileset">
    <mapper type="flatten" />
</pathconvert>

<echo file="sounds.txt">${sounds}</echo>
Run Code Online (Sandbox Code Playgroud)

ant fileset

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