我正在使用paho发送和接收mqtt消息.到目前为止,发送消息没有问题,我通过使用mosquitto接收它们.
现在我想通过使用java客户端阅读消息,我注意到有关接收消息的文档较少.
我实现了MqttCallback接口,但我仍然无法弄清楚如何阅读我订阅的主题的消息.
这是我的源代码到目前为止,我可以使用mosquitto_sub读取消息.
import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken;
import org.eclipse.paho.client.mqttv3.MqttCallback;
import org.eclipse.paho.client.mqttv3.MqttClient;
import org.eclipse.paho.client.mqttv3.MqttException;
import org.eclipse.paho.client.mqttv3.MqttMessage;
public class PahoDemo implements MqttCallback {
MqttClient client;
MqttClient subClient;
public PahoDemo() {
}
public static void main(String[] args) {
new PahoDemo().doDemo();
}
public void doDemo() {
try {
client = new MqttClient("tcp://192.168.118.11:1883", "Sending");
subClient = new MqttClient("tcp://192.168.118.11:1883",
"Subscribing");
client.connect();
subClient.connect();
subClient.subscribe("foo");
MqttMessage message = new MqttMessage();
message.setPayload("A single message from my computer fff"
.getBytes());
client.publish("foo", message);
client.disconnect();
client.close();
subClient.disconnect();
subClient.close();
} catch (MqttException e) { …
Run Code Online (Sandbox Code Playgroud) 我有两个实体,一个实体"电影"和一个实体"剪辑"每个剪辑属于一个电影,一个电影可以有多个剪辑.
我的代码看起来像:
Movie.java
@OneToMany(mappedBy = "movie", targetEntity = Clip.class, cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private Set<Clip> clips = new HashSet<Clip>();
Clip.java
@ManyToOne
@JoinColumn(name="movie_id")
private Movie movie;
Run Code Online (Sandbox Code Playgroud)
正在生成表,每个Clip都有一个列"movie_id"但这会导致我的应用程序在我请求数据时最终处于无限循环中
@Path("/{id:[0-9][0-9]*}")
@GET
@Produces(MediaType.APPLICATION_JSON)
public Movie lookupMovieById(@PathParam("id") long id) {
return em.find(Movie.class, id);
}
result:
{"id":1,"version":1,"name":"MGS Walkthrough","filename":"video.mp4","movieCategories":[{"id":1,"version":1,"name":"Walkthrough"}],"clips":[{"id":1,"version":1,"name":"MGS Walkthrough P1","keywords":null,"movie":{"id":1,"version":1,"name":"MGS Walkthrough","filename":"video.mp4","movieCategories":[{"id":1,"version":1,"name":"Walkthrough"}],"clips":[{"id":1,"version":1,"name":"MGS Walkthrough P1","keywords":null,"movie":{"id":1,"version":1,"name":"MGS Walkthrough","filename":"video.mp4","movieCategories":[{"id":1,"version":1,"name":"Walkthrough"}],"clips":[{"id":1,"version":1,"name":"M...
Run Code Online (Sandbox Code Playgroud)
当我请求剪辑时,结果相同.
当我将它改为@ManyToMany关系时,不会有任何类似的问题,但这不是我在这里需要的.你能帮助我吗?将fetchType设置为Lazy不起作用.
编辑:我正在使用当前的JBoss开发工作室
编辑:
通过阅读本文,我"解决了"这个问题:
http://blog.jonasbandi.net/2009/02/help-needed-mapping-bidirectional-list.html
"要将双向一个映射到多个,一对多一侧作为拥有方,您必须删除mappedBy元素并将多个@JoinColumn设置为可插入且可更新为false.此解决方案显然未进行优化并会产生一些额外的UPDATE语句."
当我要求电影时,我得到以下答案:
{"id":1,"version":1,"name":"MGS Walkthrough","filename":"video.mp4","movieCategories":[{"id":1,"version":1, "名称":"演练"}],"剪辑":[],"说明":"预告片zu mgs4"}
条目"剪辑"仍然出现.这仍然是错误的解决方案还是我必须忍受这个?
我有一个包含人员列表的列表框.当用户单击某个项时,viewModel应将currentPerson对象设置为用户单击的Object.
我必须为此使用ViewModel,因此MainWindow.xaml.xs中没有代码.任何想法如何解决这个问题?
我想通过使用渐变来创建一个流光溢彩效果.
在css3中,您可以让渐变从,或从中移动top to bottom
,您可以使用多种颜色.但只针对一个方向.bottom to top
left to right
right to left
我想通过计算每个区域的平均或主色来组合图像的4个区域,然后使用渐变为图像创建背景.
我想过使用多重渐变但是当你创建一个渐变交流和另一个bd并且只是放在图片后面时,它看起来不太好.(我标记了关键区域.).
你有什么想法可以做到这一点吗?
编辑:我不想在渐变之间混合颜色,如图中所示.我对所有颜色之间的平滑浮动感到满意.
EDIT2:我在这里上传了我的问题演示:http://jsfiddle.net/HJtnG/
编辑3:我们已经知道这不能用CSS3完成,但也许用SVG.经过一番重新研究后,我发现了这张照片:
所以我会选择像图片上那样的彩色圆圈.
我只是按照门票怪物教程(http://www.jboss.org/jdf/examples/ticket-monster/tutorial/Introduction/)并在我的解决方案中添加了一个休息服务类.
package projectFoo.rest;
import java.util.List;
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.persistence.EntityManager;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import projectFoo.model.party;
@Path("/partys")
@RequestScoped
public class partyService {
@Inject
private EntityManager em;
@GET
@Produces(MediaType.APPLICATION_JSON)
public List<party> getAllEvents() {
@SuppressWarnings("unchecked")
final List<party> results =
em.createQuery(
"select e from party e order by e.name").getResultList();
return results;
}
}
Run Code Online (Sandbox Code Playgroud)
@Inject加下划线,返回:"没有bean有资格注入注入点[JSR-299§5.2.1]"
当我尝试部署包时,该过程将失败并返回以下消息:
Unsatisfied dependencies for type [EntityManager] with qualifiers [@Default] at injection point.
Run Code Online (Sandbox Code Playgroud)
我是否必须为实体管理器添加一个bean?这个怎么样?该教程没有提到这一点.实际上我在最终的ticket-monster项目中找不到任何bean的定义.
我从 JSON 解析文档,该文档将作为父文档的子文档添加。我只是将项目发布到索引,而不关心 id。
有时 JSON 会更新并且项目会添加到其中。例如,我从 JSON 中解析了 2 个文档,一两周后我再次解析相同的 JSON。这次 JSON 包含 3 个文档。
我找到了类似的答案:“删除所有子项并再次插入所有项目。”,但我怀疑这就是我正在寻找的解决方案。
我可以将每个项目与目标父级的子级进行比较,并添加新文档(如果没有相等的子级)。
我想知道是否有办法让elasticsearch 处理重复项。
我想将 json 文件的条目与 jq 合并。
如果某些定义的键的值匹配,我想合并条目。不匹配的数据应存储在数组中。
我为此案例提供了一些 JSON 示例。
如果街道和门牌号相同,我想合并此条目并将“member”的值放入数组中。
匹配键:门牌号+街道必须相同。
输入示例
[{
"street" : "Foobar ave",
"housenumber": 4,
"member":"Carl"
},
{
"street" : "Foobar ave",
"housenumber": 4,
"member":"Bernd"
},
{
"street" : "Foobar ave",
"housenumber": 2,
"member":"Ann"
}]
Run Code Online (Sandbox Code Playgroud)
目标结果:
[{
"street" : "Foobar ave",
"housenumber": 4,
"members":["Carl","Bernd"]
},
{
"street" : "Foobar ave",
"housenumber": 2,
"members":["Ann"]
}]
Run Code Online (Sandbox Code Playgroud) 有几种方法可以查找EJB
我可以使用此查找连接到我的ejb服务器,但仅限于使用ConsoleClient时.
"ejb:" + appName + "/" + moduleName + "/" + distinctName + "/" + beanName + "!" + viewClassName)
Run Code Online (Sandbox Code Playgroud)
当我在tomcat应用程序服务器(spring mvc项目)上尝试此查找时,此查找将不起作用.Jboss以ClassNotFoundException响应.
我假设必须有另一个jndi查找名称?很遗憾,我在网上找不到任何有用的信息.
编辑:
我的控制器
@RequestMapping(value = "login", method = RequestMethod.POST)
public LoginBeanRemote logIn(){
final Hashtable jndiProperties = new Hashtable();
jndiProperties.put(Context.URL_PKG_PREFIXES, "org.jboss.ejb.client.naming");
Context context = null;
try {
context = new InitialContext(jndiProperties);
} catch (NamingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
final String appName = "foo_business";
final String moduleName = "foo_business";
final String distinctName = ""; …
Run Code Online (Sandbox Code Playgroud) 我刚刚通过Chase找到了AutoResizeTextView
但我无法让它运行起来.
AutoResizeTextView monologTextView;
monologTextView = (AutoResizeTextView) findViewById(R.id.dialogText);
Run Code Online (Sandbox Code Playgroud)
XML:
<AutoResizeTextView
android:id="@+id/dialogText"
style="@style/monologText"
android:layout_width="fill_parent"
android:layout_height="100dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:ellipsize="none"
android:singleLine="true"
/>
Run Code Online (Sandbox Code Playgroud)
导致android.view.InflateException.
Binary XML file line #44: Error inflating class AutoResizeTextView
Run Code Online (Sandbox Code Playgroud)
当我将XML更改为TextView时
<TextView
android:id="@+id/dialogText"
style="@style/monologText"
android:layout_width="fill_parent"
android:layout_height="100dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:ellipsize="none"
android:singleLine="true"
/>
Run Code Online (Sandbox Code Playgroud)
我收到以下运行时异常:
android.widget.TextView无法强制转换为com.gootsproject.AutoResizeTextView
如何实现扩展的textView?
我必须将位图的像素转换为短阵列.因此我想:
这是获取字节的源码:
public byte[] BitmapToByte(Bitmap source)
{
using (var memoryStream = new MemoryStream())
{
source.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Bmp);
return memoryStream.ToArray();
}
}
Run Code Online (Sandbox Code Playgroud)
这不会返回预期的结果.还有另一种转换数据的方法吗?
我想改变selectOneMenu的背景颜色.当我尝试设置样式时,style="background-color:#f6f6f6"
根本没有变化.
我尝试用a包装它div
并为它添加一个定义到style.css但到目前为止没有任何变化.
c# ×2
css ×2
jboss ×2
jsf ×2
json ×2
android ×1
bitmap ×1
bytearray ×1
converter ×1
css3 ×1
eclipse ×1
ejb ×1
extending ×1
gradient ×1
hibernate ×1
inject ×1
java ×1
java-ee ×1
jndi ×1
jq ×1
listbox ×1
listitem ×1
lookup ×1
maven ×1
merge ×1
mqtt ×1
mvvm ×1
object ×1
one-to-many ×1
primefaces ×1
styles ×1
svg ×1
tomcat ×1
wpf ×1