51,410
社区成员
发帖
与我相关
我的任务
分享
import java.util.List;
import cn.xuxiaofa.web.action.CartRefAction;
import cn.xuxiaofa.web.action.cart.CartItem;
import javafx.scene.shape.Line;
import java.util.Properties;
import java.util.concurrent.TimeUnit;
import kafka.javaapi.producer.Producer;
import kafka.producer.KeyedMessage;
import kafka.producer.ProducerConfig;
import kafka.serializer.StringEncoder;
public class OrderConfirmAction extends CartRefAction{
private static String line;
private static int number;
private List<CartItem> items;//购物车中的商品信息(CartItem)表
/*
* 在这里获取数据,传到spark里?
* CartItem类中包含一个Product实体类
* 该实体类有商品的名称,但是没有其所属种类
*/
public class kafkaProducer extends Thread{
private String topic;
public kafkaProducer(String topic){
super();
this.topic = topic;
}
@Override
public void run() {
Producer<Integer, String> producer = createProducer();
int i = 0;
while(true){
producer.send(new KeyedMessage<Integer, String>(topic,"message:",i++));
try {
TimeUnit.SECONDS.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public Producer<Integer, String> createProducer() {
Properties properties = new Properties();
properties.put("zookeeper.connect", "192.168.91.128:2181");//声明zk
System.out.println("serializer.class开始");
//
System.out.println("序列化类名字:"+StringEncoder.class.getName());
properties.put("serializer.class", StringEncoder.class.getName());
System.out.println("serializer.class结束");
properties.put("metadata.broker.list", "192.168.91.128:9092");// 声明kafka broker
return new Producer<Integer, String>(new ProducerConfig(properties));
}
}
public static void main(String[] args){
kafkaProducer.start();
}
public String execute() throws Exception{
items = getCart().getItems(false);
if(items.size()==0){
// request.setAttribute("cart_empty", "未购买商品,请购买商品后再结算");
return "empty";
}
//* 将购物车中的商品信息传送到Spark 里??如何去传
// * 传过去商品名称和商品购买量
//* 传过去之后,如何从数据库中取出来在前端显示
kafkaProducer kProducer = new kafkaProducer("order");// 使用kafka集群中创建好的主题 test
System.out.println("购物车中的商品种类:"+items.size());
System.out.println();
for (CartItem cartItem : items) {
System.out.println("11111111111111");
line = cartItem.getPro().getId() + " " + cartItem.getPro().getProduct_name() ;
System.out.println(line);
number = cartItem.getNum();
System.out.println(number);
kProducer.start();
System.out.println("start测试");
}
/*System.out.println("商品名称:" + cartItem.getPro().getProduct_name()
+" 商品数量:"+cartItem.getNum()
+" 商品id:"+cartItem.getPro().getId());*/
return "success";
}
//获取商品总金额
public double getTotalDang() throws Exception{
return getCart().total(false);
}
public List<CartItem> getItems() {
return items;
}
public void setItems(List<CartItem> items) {
this.items = items;
}
}