有没有允许将文本内容转换为图像文件的Java库?我只知道ImageMagick(在这种情况下是JMagick)但我不想安装任何外部二进制文件(我的应用程序将在Tomcat服务器中部署为.war文件,因此我不希望任何其他依赖项比Java更多) .
例如,从字符串"Hello",我想生成这个简单的图像:

可能吗?我不确定,因为d3大量使用this重新绑定,这似乎与ES6 规范相冲突.
例如,以下工作正常:
// Working fine
var data = [1,2,3]
var svg = d3.select('body').append('svg').attr('height', 500).attr('width', 500).style('background-color', 'orange');
var gs = svg.selectAll('g').data(data).enter();
gs.append('circle')
.attr('cx', function () { return Math.random()*500; })
.attr('cy', function () { return Math.random()*500; })
.attr('r', function () { return Math.random()*100; })
.each(function () { console.log(this); }); // this is bound to the current element in the enter selection
Run Code Online (Sandbox Code Playgroud)
虽然以下内容不能按预期工作(this不是绑定到enter选择中的当前元素而是绑定到Windowobject):
var data = [1,2,3]
var svg = d3.select('body').append('svg').attr('height', 500).attr('width', 500).style('background-color', 'blue');
var …Run Code Online (Sandbox Code Playgroud) 我有一些应该发送到服务器的表单(作为POST请求),在DB中存储某个对象并返回带有一些数据的新模板.
在正常情况下,这样可以正常工作,但问题是从表单数据中创建了一个非常复杂的JSON对象,这应该存储在数据库中.已成功检索JSON,但模板重定向无效:
@app.route('/entry', methods=['GET', 'POST'])
def entry():
if request.method == 'GET':
#Do some stuff
return render_template('entry.html')
elif request.method == 'POST':
#Store the JSON object received and return back a new template with some data
data = request.json
db.store(data)
#Retrieve some other data
other_data = ...
return render_template('diary.html', data=other_data)
Run Code Online (Sandbox Code Playgroud)
我想知道在这些情况下的一般方法是什么(我对Python和Flask本身很新).对我来说,看起来这不应该是一个问题,但我找不到一个优雅的解决方案.
提前致谢.
编辑:
我将JS相关代码简化为:
entry.html
<!DOCTYPE html>
<html>
<head>
<title></title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
</head>
<body>
<script type="text/javascript">
$(function(){
var json = {
'foo': 1,
'bar': 2
}
$.ajax('entry', {
type: 'POST',
data: JSON.stringify(json), …Run Code Online (Sandbox Code Playgroud) 我在运行一个读取文本文件并收集结果的简单作业时收到EOFException.这在我的开发机器上运行正常,但在独立模式(单机,主机+工作器)中执行时失败.我的设置是Apache Spark 0.9.1 Hadoop 2预建.
我正在使用sbt-assembly插件部署我的代码并生成可执行的jar文件.
相关堆栈跟踪:
14/05/27 08:22:03 WARN scheduler.TaskSetManager: Loss was due to java.io.EOFException
java.io.EOFException
at java.io.ObjectInputStream$BlockDataInputStream.readFully(ObjectInputStream.java:2742)
at java.io.ObjectInputStream.readFully(ObjectInputStream.java:1014)
at org.apache.hadoop.io.WritableUtils.readCompressedByteArray(WritableUtils.java:39)
at org.apache.hadoop.io.WritableUtils.readCompressedString(WritableUtils.java:87)
at org.apache.hadoop.io.WritableUtils.readCompressedStringArray(WritableUtils.java:185)
at org.apache.hadoop.conf.Configuration.readFields(Configuration.java:2378)
at org.apache.hadoop.io.ObjectWritable.readObject(ObjectWritable.java:285)
at org.apache.hadoop.io.ObjectWritable.readFields(ObjectWritable.java:77)
at org.apache.spark.SerializableWritable.readObject(SerializableWritable.scala:39)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:622)
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1001)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1892)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1797)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1349)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
at org.apache.spark.serializer.JavaDeserializationStream.readObject(JavaSerializer.scala:40)
at org.apache.spark.broadcast.HttpBroadcast$.read(HttpBroadcast.scala:165)
at org.apache.spark.broadcast.HttpBroadcast.readObject(HttpBroadcast.scala:56)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:622)
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1001)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1892)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1797)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1349)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1989)
at …Run Code Online (Sandbox Code Playgroud) 我已经成功使用FileIO来传输文件的内容,为每一行计算一些转换并聚合/减少结果.
现在我有一个非常具体的用例,我希望在达到条件时停止流,这样就不必读取整个文件,但过程会尽快完成.推荐的方法是什么?
我目前正在从不同的数据源中提取一些度量标准,并将它们存储在类型的映射中,Map[String,Any]其中密钥对应于度量标准名称,值对应于度量标准值.我需要这或多或少是通用的,这意味着值类型可以是基本类型或基元类型列表.
我想将此映射序列化为JSON格式的字符串,为此我使用json4s库.事情是它似乎不可能,我没有看到可能的解决方案.我希望像下面这样的东西开箱即用:)
val myMap: Map[String,Any] = ... // extract metrics
val json = myMap.reduceLeft(_ ~ _) // create JSON of metrics
Run Code Online (Sandbox Code Playgroud)
通过导航源代码我已经看到json4s为了变换原始类型来提供隐式转换JValue的和也将转换Traversable[A]/Map[String,A]/Option[A]到JValue的(被购自的隐式转换的限制下A到JValue,这是我明白它实际上意味着A是一个基本类型).该~运营商提供构建的一个很好的方式JObject的出来JField的,这仅仅是一个类型别名(String, JValue).
在这种情况下,映射值类型是Any,因此不会发生隐式转换,因此编译器会抛出以下错误:
value ~ is not a member of (String, Any)
[error] val json = r.reduceLeft(_ ~ _)
Run Code Online (Sandbox Code Playgroud)
我想要完成的是什么解决方案?
我需要从给定的文本中提取所有英语动词,我想知道我是如何做到的......乍一看,我的想法是使用正则表达式,因为所有英语动词时态都遵循模式,但也许有另一种方法可以做到这一点.我的想法很简单:
你怎么看?我想这不是一种有效的方法,但我无法想象另一种方法.
先感谢您!
PS:
可能吗?我有自动生成的mongoDB集合,在某个时刻我需要丢弃.我知道他们的收藏品名称模式太多了,所以不能选择手工丢弃它们.我使用正则表达式查看的所有示例都涉及查询但不涉及数据库命令.我知道我可以迭代所有集合并按名称过滤我可以使它工作但我正在寻找一个更方便的单一命令(我想直接在shell中使用它),如果可能的话:)
有什么建议?
谢谢!
是否可以让服务器向所有连接的客户端发送消息而无需等待它们的任何操作?让我解释一下:-)我一直在阅读文档/示例,我发现没有什么可以满足我的需求:流程总是一样的; 客户端连接(例如:GET调用Rest API),连接是无关的,直到收到新的API调用(例如:POST调用),服务器只是等待(或者至少这是我所理解的).我的用例非常不同:我希望服务器在新数据可用后发送一些"通知".这将是我的用例(非常简化):
到目前为止,我所取得的成功是建立了连接.下一步是解决此服务器问题.我必须说这项技术对我来说是全新的,所以我有可能误解了某些东西的运作方式.如果是这样的话,请告诉我!
这是我的堆栈:
谢谢大家!
更新:在此之后我收到此警告,我不知道如何摆脱:
2013-06-04 09:40:36,284 WARN [org.atmosphere.cpr.AtmosphereFramework] - Failed using comet support: org.atmosphere.container.Tomcat7AsyncSupportWithWebSocket, error: Tomcat failed to detect this is a Comet application because context.xml is missing or the Http11NioProtocol Connector is not enabled.
If that's not the case, you can also remove META-INF/context.xml and WEB-INF/lib/atmosphere-compat-tomcat.jar Is the Nio or Apr Connector enabled?
2013-06-04 09:40:36,285 WARN [org.atmosphere.cpr.AtmosphereFramework] - Using org.atmosphere.container.Tomcat7BIOSupportWithWebSocket
Run Code Online (Sandbox Code Playgroud)
我按照 …
我正在使用来自外部API的一些REST端点,我正在使用Rest Template接口来实现此目的.当我从这些调用中收到某些HTTP状态代码时,我希望能够抛出自定义应用程序异常.为了实现它,我正在实现ResponseErrorHandler接口,如下所示:
public class MyCustomResponseErrorHandler implements ResponseErrorHandler {
private ResponseErrorHandler myErrorHandler = new DefaultResponseErrorHandler();
public boolean hasError(ClientHttpResponse response) throws IOException {
return myErrorHandler.hasError(response);
}
public void handleError(ClientHttpResponse response) throws IOException {
String body = IOUtils.toString(response.getBody());
MyCustomException exception = new MyCustomException(response.getStatusCode(), body, body);
throw exception;
}
}
public class MyCustomException extends IOException {
private HttpStatus statusCode;
private String body;
public MyCustomException(String msg) {
super(msg);
// TODO Auto-generated constructor stub
}
public MyCustomException(HttpStatus statusCode, String body, String msg) {
super(msg);
this.statusCode = …Run Code Online (Sandbox Code Playgroud) scala ×3
java ×2
ajax ×1
akka-stream ×1
apache-spark ×1
atmosphere ×1
awt ×1
d3.js ×1
ecmascript-6 ×1
flask ×1
fonts ×1
hadoop ×1
image ×1
javascript ×1
jersey ×1
jinja2 ×1
json4s ×1
mongodb ×1
nlp ×1
python ×1
regex ×1
rest ×1
spring ×1
spring-mvc ×1
text ×1