我想运行集成测试来测试我的 kafka 监听器和 avro 序列化。这需要一个 Kafka 和一个 Schema 注册表(也可以称为 Zookeeper)。
测试时,我当前必须使用 docker-compose.yml,但我想通过 testcontainers 构建所需的容器来减少用户错误。Kafka 和 Zookeeper 实例启动得很好,看起来工作得很好——我的应用程序可以创建所需的主题,并且监听器也被订阅,我什至可以通过 kafka 控制台生产者发送消息。
不起作用的是 SchemaRegistry。容器启动,显然连接到了ZK,但无法建立到broker的连接。它会重试连接一段时间,直到超时,然后容器停止。因此,我无法在测试中注册和读取用于(反)序列化的 avro 模式,因此失败。
我找不到 SR 显然可以连接到 ZK 但找不到我的经纪人的原因。
有人也遇到过这个问题吗?你成功运行了吗?如果是这样,怎么会这样?我需要 Kafka 和架构注册表测试容器完全可用于我的测试,因此不能忽略其中任何一个。
我也可以继续使用 docker-compose.yml,但我真的很想完全以编程方式设置我的测试环境。
架构注册表容器记录以下内容:
2023-02-08 16:56:09 [2023-02-08 15:56:09,556] INFO Session establishment complete on server zookeeper/192.168.144.2:2181, session id = 0x1000085b81e0003, negotiated timeout = 40000 (org.apache.zookeeper.ClientCnxn)
2023-02-08 16:56:09 [2023-02-08 15:56:09,696] INFO Session: 0x1000085b81e0003 closed (org.apache.zookeeper.ZooKeeper)
2023-02-08 16:56:09 [2023-02-08 15:56:09,696] INFO EventThread shut down for session: 0x1000085b81e0003 (org.apache.zookeeper.ClientCnxn)
2023-02-08 16:56:09 [2023-02-08 15:56:09,787] INFO …
Run Code Online (Sandbox Code Playgroud) java apache-kafka docker-compose testcontainers confluent-schema-registry
运行命令 docker-compose up -d 在此处输入图像描述 出现此错误:来自守护程序的错误响应:租用“moby-image-sha256:c2740b69f111bd711c867e337c12bab4b3d720c987e0d09549fe95e6badc6ba8”:未找到
不知道这意味着什么。我在 M1 上。这是我的 docker 文件:
version: '3.9'
services:
telikos-activityplanworkflow-service:
container_name: telikos-activityplanworkflow-service
build:
context: .
dockerfile: Dockerfile
depends_on:
##----Dependent images-----------
broker:
condition: service_healthy
mongo:
condition: service_started
##---Ports-------------
ports:
- 8080:8080
expose:
- 8080
##---Environment variables------------
environment:
- server.port=8080
- kafkabootstrapservers=broker:9092
##-----------------------------------------
#----docker-images------------------------------------------------------
zookeeper:
image: confluentinc/cp-zookeeper:6.2.0
hostname: zookeeper
container_name: zookeeperap
ports:
- "2181:2181"
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ZOOKEEPER_TICK_TIME: 2000
broker:
image: confluentinc/cp-server:6.2.0
hostname: broker
container_name: brokerap
depends_on:
- zookeeper
ports:
- "29092:29092"
- "9101:9101"
environment:
KAFKA_BROKER_ID: 1 …
Run Code Online (Sandbox Code Playgroud) 我需要创建一个可以将手机锁定在某个特定事件上的应用程序.
要么我想以编程方式使用Require Pattern.
或者创建一个锁定应用程序,就像windows mobile一样,要输入数字而不是Pattern.
如果可以创建这个应用程序,请引导我到路径.
root@hadoop:~# hive
Run Code Online (Sandbox Code Playgroud)
Logging initialized using configuration in jar:file:/usr/lib/hive/apache-hive-1.1.0-bin/lib/hive-common-1.1.0.jar!/hive-log4j.properties
[ERROR] Terminal initialization failed; falling back to unsupported
java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected
at jline.TerminalFactory.create(TerminalFactory.java:101)
at jline.TerminalFactory.get(TerminalFactory.java:158)
at jline.console.ConsoleReader.<init>(ConsoleReader.java:229)
at jline.console.ConsoleReader.<init>(ConsoleReader.java:221)
at jline.console.ConsoleReader.<init>(ConsoleReader.java:209)
at org.apache.hadoop.hive.cli.CliDriver.getConsoleReader(CliDriver.java:773)
at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:715)
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:675)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:615)
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:606)
at org.apache.hadoop.util.RunJar.main(RunJar.java:212)
Exception in thread "main" java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected
at jline.console.ConsoleReader.<init>(ConsoleReader.java:230)
at jline.console.ConsoleReader.<init>(ConsoleReader.java:221)
at jline.console.ConsoleReader.<init>(ConsoleReader.java:209)
at org.apache.hadoop.hive.cli.CliDriver.getConsoleReader(CliDriver.java:773)
at org.apache.hadoop.hive.cli.CliDriver.executeDriver(CliDriver.java:715)
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:675)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:615)
at …
Run Code Online (Sandbox Code Playgroud) 我试图将Textview的值更改为我正在查询解析的某些信息,但由于某种原因,.setText
它没有生效.
我尝试谷歌搜索,但.getString
也无法正常工作.我是Parse任何建议的新手?
我的代码如下:
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.parse.FindCallback;
import com.parse.GetCallback;
import com.parse.ParseException;
import com.parse.ParseObject;
import com.parse.ParseQuery;
import org.w3c.dom.Text;
import java.util.List;
/**
* A simple {@link Fragment} subclass.
*/
public class productDetail extends Fragment {
public productDetail() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final View theView = inflater.inflate(R.layout.fragment_product_detail, container, false);
final TextView productNameLabel = (TextView) …
Run Code Online (Sandbox Code Playgroud) 我试图让代码打印出x(每次平方x),直到它达到将当前时间(以毫秒为单位)分成单个数字的数字.它没有任何错误,但它也没有输出.如何将其打印出来?
public class Experiment {
public static void main(String[] args){
long start = System.currentTimeMillis();
for(long x = 2; System.currentTimeMillis() / x <= 9; x=x*2){
System.out.println(x);
}
}
}
Run Code Online (Sandbox Code Playgroud) 我正在研究一个项目而且我已经厌倦了不断编写.set,所以我打算用一些方法来缩短代码并使其更快.我正在使用JButtons,JLabels和JTextFields,有没有办法可以编写一个能够.setInvisible(false)的方法; 在这些?或者我必须为每种类型都有单独的方法.谢谢!
例:
public void siv((JButton || JLabel || JTextField) input) {
input.setVisible(false);
}
Run Code Online (Sandbox Code Playgroud)
***编辑:为了清楚我正在试图看看Java是否可以理解采用输入的方式而不是需要全部三种方式.我试图找到一种方法来做到这一点,而不做我在下面添加的内容:
private void siv(JButton input, JTextField input2, JLabel input3) {
input.setVisible(false);
input2.setVisible(false);
input3.setVisible(false);
}
Run Code Online (Sandbox Code Playgroud) 我正在开发一个从 soundcloud 中选取数据的项目,但我似乎无法解决这个问题。请帮我。
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile files('libs/gson-2.6.2.jar')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.google.code.gson:gson:2.6.2'
compile 'com.squareup.retrofit2:retrofit:2.0.2'
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.squareup.retrofit2:converter-gson:2.0.2'
}
Run Code Online (Sandbox Code Playgroud)
这是我的代码
RestAdapter restAdapter = new RestAdapter.Builder().setEndpoint(Config.API_URL).build();
SCService scService = restAdapter.create(SCService.class);
scService.getRecentTracks(new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date()), new Callback<List<Track>>() {
@Override
public void onResponse(Call<List<Track>> call, Response<List<Track>> response) {
Log.d(TAG, "First track title: " + tracks.get(0).getTitle());
}
@Override
public void onFailure(Call<List<Track>> call, Throwable t) {
Log.d(TAG, "Error: " + error);
}
});
Run Code Online (Sandbox Code Playgroud)
请帮忙!
我试图找出一种方法,如果输入可被4整除,则返回true,但不是100,除非也是400.我尝试失败了:
def is_leap(year):
leap = False
if [year % 100 == 0 if not year % 400]:
leap = False
else:
if leap % 4 == 0:
leap = True
return leap
Run Code Online (Sandbox Code Playgroud)
2100的输入可以被4和100整除但不是400,所以我希望它返回False.
我得出一个简单的结论
def is_leap(year):
leap = False
if year % 4 == 0 and year % 400 == 0:
leap = True
elif year % 4 == 0 and year % 100 != 0:
leap = True
return leap
Run Code Online (Sandbox Code Playgroud)
但除非是否有更简单或不同的方式来做?谢谢.
此外,虽然我主要倾向于使用python3.5来满足每个人的需求,但我喜欢2.7的简单性.任何帮助都将不胜感激.
java ×5
android ×4
apache-kafka ×1
contextmenu ×1
docker ×1
for-loop ×1
hadoop ×1
hive ×1
if-statement ×1
methods ×1
output ×1
parameters ×1
python ×1
retrofit ×1
retrofit2 ×1