我试图通过Java NIO通道接收XML事件流.我是NIO和StAX解析的新手,所以我很容易忽略一些东西:)
我的搜索让我进入了几个SAX和StAX实现,但它们似乎都在InputStreams和InputSources上运行 - 而不是NIO通道.我最近的两次尝试是从通道获取InputStream并创建一个PipedInputStream:
// method 1
PipedOutputStream out = new PipedOutputStream();
InputStream in = new PipedInputStream(out);
PrintWriter writer = new PrintWriter(out);
//method 2
InputStream in = channel.socket().getInputStream()
//method 3
IputStream in = Channels.newInputStream(channel);
Run Code Online (Sandbox Code Playgroud)
其次是:
XMLStreamReader xmlStreamReader = XMLInputFactory.newInstance()
.createXMLStreamReader(in);
//...
Run Code Online (Sandbox Code Playgroud)
当上面的代码与方法1一起使用时,它会在createXMLStreamReader行上阻塞.当使用方法2/3时,它们会立即抛出IllegalBlockingModeException(我明白为什么).也许需要一种新的方法?
我的目标是让一个非阻塞服务器select => accept来自客户端的字符数据=>使用特定的编码将其解析为XML事件=>将该事件对象转发到另一个线程进行处理=>并返回选择.
所以我忽略了一些东西,还是有更好的方法可以使用?如果是这样的话?
谢谢!
这是一个奇怪的,但希望有人可以在这里给我一个想法.我把几个值到会话中Session_Start的Global.asax我的应用程序.Session_Start我的基页OnInit被调用后立即尝试使用其中一个Session变量.
奇怪的部分有时它是有效的,然后在没有任何变化后会开始给我这个错误:
"时才能使用会话状态
enableSessionState被设定为true,无论是在配置文件或Page指令.还请确保System.Web.SessionStateModule或自定义会话状态模块包含在<configuration>\<system.web>\<httpModules>应用程序中的配置部分."
我看起来并且看起来在启用会话中找到所有不同的方式web.config.这是现在的样子:
<system.web>
...
<sessionState mode="InProc" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" timeout="20"/>
<globalization requestEncoding="utf-8" responseEncoding="utf-8"/>
<httpHandlers>
<add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax"/>
<remove verb="*" path="*.asmx"/>
<add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add verb="GET,HEAD" path="ScriptResource.axd" validate="false" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</httpHandlers>
<xhtmlConformance mode="Legacy"/>
<pages>
<!-- enableSessionState="true" …Run Code Online (Sandbox Code Playgroud) 我需要在SortIP函数中放入什么来使自定义排序函数按IP号的最后一位对数组进行排序.这不起作用.
function SortIP(a, b)
{
return a[0][3] - b[0][3];
}
LAN = new Array
(
["ADSL Router", [192, 168, 0, 1]],
["Gary's Mac", [192, 168, 0, 15]],
["Network Switch", [192, 168, 0, 2]],
["Production Email", [192, 168, 0, 60]]
);
LAN.sort(SortIP);
Run Code Online (Sandbox Code Playgroud)
预期的数组顺序:
我试图在NHibernate中使用"每个类层次结构表"策略在一个表中实现我的对象层次结构.我的NHibernate映射出错,可以通过一个简单的例子轻松复制.错误是:
System.NotSupportedException: Attempting to parse a null value into an sql string (column:activity0_.Type).
at NHibernate.SqlCommand.InFragment.ToFragmentString() in InFragment.cs: line 109
at NHibernate.Persister.Entity.SingleTableEntityPersister.DiscriminatorFilterFragment(String alias) in SingleTableEntityPersister.cs: line 551
Run Code Online (Sandbox Code Playgroud)
我可以使用以下域类重现这一点:
public interface IActivity
{
Guid Id { get; set; }
}
public abstract class Activity : IActivity
{
public DateTime StartTime { get; set; }
public Guid Id { get; set; }
}
public class Running : Activity
{
public string Where { get; set; }
}
public class Talking : Activity
{ …Run Code Online (Sandbox Code Playgroud) 我制作了一个自定义列表,它实际上是一个填写缺席请求工作流程的表单.在发布之前我发现了一个缺陷.第一个文本框是一个Person或Group文本框,这有助于检索Active Directory用户名,但缺点是我可以输入我想要的任何用户名,例如:
"用户X已登录,但如果他键入用户Y并按下输入,则可以请求用户Y缺席"
所以我想要的是,隐藏文本框并自动填充当前登录的用户.
我一直在寻找计算文本框的公式,但我没有找到任何东西.
当我尝试
user = System.Web.UI.Page.CurrentUser
Run Code Online (Sandbox Code Playgroud)
要么
user = System.Web.UI.Page.User.Identity
Run Code Online (Sandbox Code Playgroud)
我收到一个错误,说没有为System.Web.UI.Page定义该方法
我试图在Controller中访问它,这有关系吗?
我检查过我没有另一个名为Page的类,为什么会说这个方法没有定义?
两部分问题:
(希望这不是重复,我在SO上找不到任何东西)
在我的DB中,我存储了一个中心点,以及一个半径(以米为单位).
我想传入一个lat/lng,然后让我存储的mysql值创建一个圆圈告诉我,如果我传入的点是在该圈内.是否有一些东西可以让我这样做,类似于hasrsine forumla(假设我的观点已经在数据库中).
Haversine公式:(3959*acos(cos(弧度(40))*cos(弧度(lat))*cos(弧度(long) - 弧度(-110))+ sin(弧度(40))*sin(弧度(long) ))
D b:
circleLatCenter,circleLngCenter,Radius
传入>从foo中选择id,其中lat,lng in(make circle function:circleLat,circleLng,radius)
基本上我正在尝试实现一个功能,如果用户按下一个键,我想找出鼠标光标下的项目.
所以我不使用鼠标事件,但键盘事件当然不会给我一个ListViewItem.
我只是不知道在什么空间我需要获得鼠标位置并将其转换为控件的空间.
有任何想法吗?
如果FirstName值为null或为空,我正在抛出一个ApplicationException,我试图在TextBlock中显示错误消息,该消息是ErrorTemplate的一部分.但它始终显示"异常已被抛出调用目标".
public string FirstName
{
get { return _firstName;}
set
{
if(String.IsNullOrEmpty(value))
throw new ApplicationException("FirstName cannot be null or empty!");
_firstName = value;
OnPropertyChanged("FirstName");
}
}
<Style x:Key="TextBoxStyle" TargetType="TextBox">
<Setter Property="Validation.ErrorTemplate">
<Setter.Value>
<ControlTemplate>
<DockPanel LastChildFill="True">
<TextBlock DockPanel.Dock="Right"
Foreground="Orange"
FontSize="12pt"
Text="{Binding ElementName=MyAdorner, Path=AdornedElement.(Validation.Errors)[0].ErrorContent}">
</TextBlock>
<Border BorderBrush="Green" BorderThickness="1">
<AdornedElementPlaceholder Name="MyAdorner" />
</Border>
</DockPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)
最后这里是TextBox控件:
<TextBox Name="txtFirstName" Style="{StaticResource TextBoxStyle}" Grid.Column="1" Grid.Row="0" Height="20" Width="100" Margin="10">
<TextBox.Text>
<Binding Path="FirstName">
<Binding.ValidationRules>
<ExceptionValidationRule />
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
Run Code Online (Sandbox Code Playgroud) c# ×2
.net ×1
arrays ×1
asp.net ×1
asp.net-mvc ×1
controller ×1
formulas ×1
geolocation ×1
geometry ×1
geospatial ×1
iphone ×1
java ×1
javascript ×1
listview ×1
mysql ×1
nhibernate ×1
nio ×1
sharepoint ×1
sorting ×1
stax ×1
textbox ×1
validation ×1
winforms ×1
wpf ×1
xml ×1