小编che*_*tan的帖子

通过LoadBalancer公开现有和已部署的Kubernetes服务

我已经将服务部署到kubernetes集群中,如下所示:

$ kubectl get svc my-service
NAME               CLUSTER_IP       EXTERNAL_IP   PORT(S)    SELECTOR                AGE
my-service         192.168.202.23   <none>        8080/TCP   name=my-service         38d
Run Code Online (Sandbox Code Playgroud)

YAML配置的spec部分如下所示:

"spec": {
        "ports": [
            {
                "name": "http-port",
                "protocol": "TCP",
                "port": 8080,
                "targetPort": 8080
            }
        ],
        "selector": {
            "name": "my-service"
        },
        "clusterIP": "192.168.202.23",
        "type": "ClusterIP",
        "sessionAffinity": "None"
    },
    "status": {
        "loadBalancer": {}
    }
}
Run Code Online (Sandbox Code Playgroud)

现在,我想公开使用LoadBalancer可以从外部访问此服务。使用kubectl暴露服务会产生如下错误:

$ kubectl expose service my-service --type="LoadBalancer"
Error from server: services "my-service" already exists
Run Code Online (Sandbox Code Playgroud)

是否无法“编辑”现有已部署的服务并使之可从外部访问?

service kubernetes

5
推荐指数
2
解决办法
3679
查看次数

从JSON反序列化java枚举

我们使用Jackson 1.9.1对JSON请求响应字符串进行序列化和反序列化.原始Java类型,集合类型和自定义对象(序列化)没有问题.但是,我在尝试将JSON字符串反序列化为java枚举时遇到问题.JSON字符串是这样序列化的:

"wt":{"wt":100.5,"unit":{"LBS":3}}
Run Code Online (Sandbox Code Playgroud)

wt的Java类型是这样的:

public class Weight {

    protected double weight;
    protected Unit unit;
}
Run Code Online (Sandbox Code Playgroud)

我提到了这个,这个,以及这个在SO上,并提出了重量单位的枚举,如下:

public enum Unit {

    KG("kg"),
    GM("gm"),
    LBS("lbs"),
    OZ("oz");

    private String value;  
    private WeightMeasurementUnit(String value) { this.value = value; }

    @JsonValue
    public String getValue() { return this.value; }

    @JsonCreator
    public static Unit create(String val) {
        Unit[] units = Unit.values();
        for (Unit unit : units) {
            if (unit.getValue().equals(val)) {
                return unit;
            }
        }
        return LBS;
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是,当我尝试反序列化上面提到的JSON时,我得到这个错误说:"无法识别的字段"LBS"(类abcdWeight),没有标记为可忽略"异常堆栈跟踪是这样的:

Caused by: …
Run Code Online (Sandbox Code Playgroud)

java enums json jackson

3
推荐指数
1
解决办法
3万
查看次数

在spring-batch中使用FlatFileItemWriter创建新的输出文件

我有一个简单的弹簧批处理作业 - 逐行读取文件,对输入字符串执行某些操作,并写入一些输出.输出文件包含输入的每一行加上该行的某些处理状态(成功/失败.)从以下位置读取文件:<dir>/<inputFolder>/<inputFileName>并将处理后的输出写入<dir>/<outputFolder>/<inputFileName>所有这些值,因为jobParameters
File Reader是这样传递的:

<bean id="itemReader" class="org.springframework.batch.item.file.FlatFileItemReader" scope="step">
        <property name="resource" value="file:#{jobParameters['cwd']}/#{jobParameters['inputFolder']}/#{jobParameters['inputFile']}" />

        <property name="lineMapper">
          <bean class="org.springframework.batch.item.file.mapping.DefaultLineMapper">

            <property name="lineTokenizer">
              <bean class="org.springframework.batch.item.file.transform.DelimitedLineTokenizer">
                <property name="delimiter" value="," />
              </bean>
            </property>
            <property name="fieldSetMapper" >
              <bean class="org.springframework.batch.item.file.mapping.PassThroughFieldSetMapper" />
            </property>
          </bean>
        </property>
    </bean>
Run Code Online (Sandbox Code Playgroud)

项目编写器是这样的:

<bean id="itemWriter" class="org.springframework.batch.item.file.FlatFileItemWriter" scope="step" >
        <property name="resource" value="#{jobParameters['cwd']}/#{jobParameters['outputFolder']}/#{jobParameters['inputFile']}" />
        <property name="lineAggregator">
            <bean class="org.springframework.batch.item.file.transform.PassThroughLineAggregator" />
        </property>
    </bean>  
Run Code Online (Sandbox Code Playgroud)

当我运行这个批处理作业时,读者正确读取文件,处理器完成其工作但itemWriter抛出了FileNotFound异常

2014/06/27 18-02-31,168:OUT:ERROR[Encountered an error executing the step]
org.springframework.batch.item.ItemStreamException: Could not convert resource to file: [class path resource [S:/temp/seller-optin-batch/output/sellersToOptin_test.txt]]
    at org.springframework.batch.item.file.FlatFileItemWriter.getOutputState(FlatFileItemWriter.java:374) …
Run Code Online (Sandbox Code Playgroud)

spring-batch

3
推荐指数
1
解决办法
2万
查看次数

标签 统计

enums ×1

jackson ×1

java ×1

json ×1

kubernetes ×1

service ×1

spring-batch ×1