簡體   English   中英

Azure 在 java 中使用 Visual Studio Code 的函數項目

[英]Azure Functions project using Visual Studio Code in java

我正在嘗試使用 VSCode 創建 azure function 並將其部署到 azure。 我按照描述的官方文檔進行操作,

https://docs.microsoft.com/en-us/azure/azure-functions/functions-create-first-function-vs-code?pivots=programming-language-java

完成了本文檔中描述的所有操作,但在到達“在本地運行 function ”部分時按 F5 時出現錯誤。 我通過在互聯網上搜索嘗試了一些東西,但它們都不起作用。 我注意到官方 github 帳戶在 2017 年報告了一個未解決的問題

https://github.com/Microsoft/function-demo-java-on-azure/issues/3

這讓我想知道這個問題仍然存在嗎?

已經在這方面花費了很多時間,但無法使其發揮作用。 任何幫助表示贊賞

          Environment:
          VS Code: v1.44.0
          jdk 11.0.3
          node v12.16.1
          maven v3.6.3

使用命令成功安裝azure function核心工具,npm install -g azure-functions-core-tools@3

這是完整的錯誤跟蹤

INFO] --- azure-functions-maven-plugin:0.1.4:package (package-functions) @ azure-http-trigger-example ---
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  18.933 s
[INFO] Finished at: 2020-04-10T17:28:19-04:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.microsoft.azure:azure-functions-maven-plugin:0.1.4:package (package-functions) on project azure-http-trigger-example: Execution package-functions of goal com.microsoft.azure:azure-functions-maven-plugin:0.1.4:package failed: A required class was missing while executing com.microsoft.azure:azure-functions-maven-plugin:0.1.4:package: javax/xml/bind/JAXBException
[ERROR] -----------------------------------------------------
[ERROR] realm =    plugin>com.microsoft.azure:azure-functions-maven-plugin:0.1.4
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/C:/maven/repository/com/microsoft/azure/azure-functions-maven-plugin/0.1.4/azure-functions-maven-plugin-0.1.4.jar
[ERROR] urls[1] = file:/C:/maven/repository/javax/enterprise/cdi-api/1.0/cdi-api-1.0.jar
[ERROR] urls[2] = file:/C:/maven/repository/org/eclipse/sisu/org.eclipse.sisu.inject/0.3.0/org.eclipse.sisu.inject-0.3.0.jar
[ERROR] urls[3] = file:/C:/maven/repository/org/apache/maven/maven-builder-support/3.3.3/maven-builder-support-3.3.3.jar
[ERROR] urls[4] = file:/C:/maven/repository/org/eclipse/aether/aether-util/1.0.2.v20150114/aether-util-1.0.2.v20150114.jar
[ERROR] urls[5] = file:/C:/maven/repository/org/sonatype/sisu/sisu-guice/3.2.5/sisu-guice-3.2.5-no_aop.jar
[ERROR] urls[6] = file:/C:/maven/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar
[ERROR] urls[7] = file:/C:/maven/repository/org/codehaus/plexus/plexus-interpolation/1.21/plexus-interpolation-1.21.jar
[ERROR] urls[8] = file:/C:/maven/repository/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar
[ERROR] urls[9] = file:/C:/maven/repository/org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar
[ERROR] urls[10] = file:/C:/maven/repository/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar
[ERROR] urls[11] = file:/C:/maven/repository/org/codehaus/plexus/plexus-utils/3.0.20/plexus-utils-3.0.20.jar
[ERROR] urls[12] = file:/C:/maven/repository/com/microsoft/azure/azure-maven-plugin-lib/0.1.4/azure-maven-plugin-lib-0.1.4.jar
[ERROR] urls[13] = file:/C:/maven/repository/org/apache/maven/shared/maven-filtering/3.0.0/maven-filtering-3.0.0.jar
[ERROR] urls[14] = file:/C:/maven/repository/org/apache/maven/shared/maven-shared-utils/3.0.0/maven-shared-utils-3.0.0.jar
[ERROR] urls[15] = file:/C:/maven/repository/com/google/code/findbugs/jsr305/2.0.1/jsr305-2.0.1.jar
[ERROR] urls[16] = file:/C:/maven/repository/org/sonatype/plexus/plexus-build-api/0.0.7/plexus-build-api-0.0.7.jar
[ERROR] urls[17] = file:/C:/maven/repository/com/microsoft/azure/azure/1.2.1/azure-1.2.1.jar
[ERROR] urls[18] = file:/C:/maven/repository/com/microsoft/azure/azure-mgmt-resources/1.2.1/azure-mgmt-resources-1.2.1.jar
[ERROR] urls[19] = file:/C:/maven/repository/org/slf4j/slf4j-simple/1.7.5/slf4j-simple-1.7.5.jar
[ERROR] urls[20] = file:/C:/maven/repository/io/reactivex/rxjava/1.2.4/rxjava-1.2.4.jar
[ERROR] urls[21] = file:/C:/maven/repository/org/apache/httpcomponents/httpcore/4.4.5/httpcore-4.4.5.jar
[ERROR] urls[22] = file:/C:/maven/repository/com/microsoft/azure/azure-mgmt-storage/1.2.1/azure-mgmt-storage-1.2.1.jar
[ERROR] urls[23] = file:/C:/maven/repository/com/microsoft/azure/azure-mgmt-network/1.2.1/azure-mgmt-network-1.2.1.jar
[ERROR] urls[24] = file:/C:/maven/repository/com/microsoft/azure/azure-mgmt-compute/1.2.1/azure-mgmt-compute-1.2.1.jar
[ERROR] urls[25] = file:/C:/maven/repository/com/microsoft/azure/azure-mgmt-graph-rbac/1.2.1/azure-mgmt-graph-rbac-1.2.1.jar
[ERROR] urls[26] = file:/C:/maven/repository/com/microsoft/azure/azure-mgmt-keyvault/1.2.1/azure-mgmt-keyvault-1.2.1.jar
[ERROR] urls[27] = file:/C:/maven/repository/com/microsoft/azure/azure-mgmt-batch/1.2.1/azure-mgmt-batch-1.2.1.jar
[ERROR] urls[28] = file:/C:/maven/repository/com/microsoft/azure/azure-mgmt-trafficmanager/1.2.1/azure-mgmt-trafficmanager-1.2.1.jar
[ERROR] urls[29] = file:/C:/maven/repository/com/microsoft/azure/azure-mgmt-dns/1.2.1/azure-mgmt-dns-1.2.1.jar
[ERROR] urls[30] = file:/C:/maven/repository/com/microsoft/azure/azure-mgmt-redis/1.2.1/azure-mgmt-redis-1.2.1.jar
[ERROR] urls[31] = file:/C:/maven/repository/com/microsoft/azure/azure-mgmt-appservice/1.2.1/azure-mgmt-appservice-1.2.1.jar
[ERROR] urls[32] = file:/C:/maven/repository/com/microsoft/azure/azure-mgmt-cdn/1.2.1/azure-mgmt-cdn-1.2.1.jar
[ERROR] urls[33] = file:/C:/maven/repository/com/microsoft/azure/azure-mgmt-sql/1.2.1/azure-mgmt-sql-1.2.1.jar
[ERROR] urls[34] = file:/C:/maven/repository/com/microsoft/azure/azure-mgmt-containerregistry/1.2.1/azure-mgmt-containerregistry-1.2.1.jar
[ERROR] urls[35] = file:/C:/maven/repository/com/microsoft/azure/azure-mgmt-cosmosdb/1.2.1/azure-mgmt-cosmosdb-1.2.1.jar
[ERROR] urls[36] = file:/C:/maven/repository/com/microsoft/azure/azure-mgmt-search/1.2.1/azure-mgmt-search-1.2.1.jar
[ERROR] urls[37] = file:/C:/maven/repository/com/microsoft/azure/azure-mgmt-servicebus/1.2.1/azure-mgmt-servicebus-1.2.1.jar
[ERROR] urls[38] = file:/C:/maven/repository/joda-time/joda-time/2.1/joda-time-2.1.jar
[ERROR] urls[39] = file:/C:/maven/repository/com/microsoft/azure/azure-client-runtime/1.1.0/azure-client-runtime-1.1.0.jar
[ERROR] urls[40] = file:/C:/maven/repository/com/microsoft/rest/client-runtime/1.1.0/client-runtime-1.1.0.jar
[ERROR] urls[41] = file:/C:/maven/repository/com/squareup/retrofit2/retrofit/2.1.0/retrofit-2.1.0.jar
[ERROR] urls[42] = file:/C:/maven/repository/com/squareup/okhttp3/okhttp/3.3.1/okhttp-3.3.1.jar
[ERROR] urls[43] = file:/C:/maven/repository/com/squareup/okio/okio/1.8.0/okio-1.8.0.jar
[ERROR] urls[44] = file:/C:/maven/repository/com/squareup/okhttp3/logging-interceptor/3.3.1/logging-interceptor-3.3.1.jar
[ERROR] urls[45] = file:/C:/maven/repository/com/squareup/okhttp3/okhttp-urlconnection/3.3.1/okhttp-urlconnection-3.3.1.jar
[ERROR] urls[46] = file:/C:/maven/repository/com/squareup/retrofit2/converter-jackson/2.1.0/converter-jackson-2.1.0.jar
[ERROR] urls[47] = file:/C:/maven/repository/com/fasterxml/jackson/core/jackson-databind/2.7.2/jackson-databind-2.7.2.jar
[ERROR] urls[48] = file:/C:/maven/repository/com/fasterxml/jackson/datatype/jackson-datatype-joda/2.7.2/jackson-datatype-joda-2.7.2.jar
[ERROR] urls[49] = file:/C:/maven/repository/com/fasterxml/jackson/core/jackson-annotations/2.7.0/jackson-annotations-2.7.0.jar
[ERROR] urls[50] = file:/C:/maven/repository/com/squareup/retrofit2/adapter-rxjava/2.1.0/adapter-rxjava-2.1.0.jar
[ERROR] urls[51] = file:/C:/maven/repository/com/microsoft/azure/azure-client-authentication/1.1.0/azure-client-authentication-1.1.0.jar
[ERROR] urls[52] = file:/C:/maven/repository/com/microsoft/azure/adal4j/1.1.2/adal4j-1.1.2.jar
[ERROR] urls[53] = file:/C:/maven/repository/com/nimbusds/oauth2-oidc-sdk/4.5/oauth2-oidc-sdk-4.5.jar
[ERROR] urls[54] = file:/C:/maven/repository/javax/mail/mail/1.4.7/mail-1.4.7.jar
[ERROR] urls[55] = file:/C:/maven/repository/javax/activation/activation/1.1/activation-1.1.jar
[ERROR] urls[56] = file:/C:/maven/repository/net/jcip/jcip-annotations/1.0/jcip-annotations-1.0.jar
[ERROR] urls[57] = file:/C:/maven/repository/net/minidev/json-smart/1.1.1/json-smart-1.1.1.jar
[ERROR] urls[58] = file:/C:/maven/repository/com/nimbusds/lang-tag/1.4/lang-tag-1.4.jar
[ERROR] urls[59] = file:/C:/maven/repository/com/nimbusds/nimbus-jose-jwt/3.1.2/nimbus-jose-jwt-3.1.2.jar
[ERROR] urls[60] = file:/C:/maven/repository/org/bouncycastle/bcprov-jdk15on/1.51/bcprov-jdk15on-1.51.jar
[ERROR] urls[61] = file:/C:/maven/repository/com/google/code/gson/gson/2.2.4/gson-2.2.4.jar
[ERROR] urls[62] = file:/C:/maven/repository/commons-codec/commons-codec/1.10/commons-codec-1.10.jar
[ERROR] urls[63] = file:/C:/maven/repository/com/microsoft/azure/azure-annotations/1.2.0/azure-annotations-1.2.0.jar
[ERROR] urls[64] = file:/C:/maven/repository/com/microsoft/azure/applicationinsights-core/1.0.9/applicationinsights-core-1.0.9.jar
[ERROR] urls[65] = file:/C:/maven/repository/eu/infomas/annotation-detector/3.0.4/annotation-detector-3.0.4.jar
[ERROR] urls[66] = file:/C:/maven/repository/commons-io/commons-io/2.4/commons-io-2.4.jar
[ERROR] urls[67] = file:/C:/maven/repository/org/apache/httpcomponents/httpclient/4.5.3/httpclient-4.5.3.jar
[ERROR] urls[68] = file:/C:/maven/repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar
[ERROR] urls[69] = file:/C:/maven/repository/commons-net/commons-net/3.6/commons-net-3.6.jar
[ERROR] urls[70] = file:/C:/maven/repository/com/microsoft/azure/azure-functions-java-core/1.0.0-beta-1/azure-functions-java-core-1.0.0-beta-1.jar
[ERROR] urls[71] = file:/C:/maven/repository/org/reflections/reflections/0.9.11/reflections-0.9.11.jar
[ERROR] urls[72] = file:/C:/maven/repository/com/google/guava/guava/20.0/guava-20.0.jar
[ERROR] urls[73] = file:/C:/maven/repository/org/javassist/javassist/3.21.0-GA/javassist-3.21.0-GA.jar
[ERROR] urls[74] = file:/C:/maven/repository/com/microsoft/azure/azure-storage/5.4.0/azure-storage-5.4.0.jar
[ERROR] urls[75] = file:/C:/maven/repository/com/fasterxml/jackson/core/jackson-core/2.6.0/jackson-core-2.6.0.jar
[ERROR] urls[76] = file:/C:/maven/repository/org/apache/commons/commons-lang3/3.4/commons-lang3-3.4.jar
[ERROR] urls[77] = file:/C:/maven/repository/com/microsoft/azure/azure-keyvault-core/0.8.0/azure-keyvault-core-0.8.0.jar
[ERROR] urls[78] = file:/C:/maven/repository/org/zeroturnaround/zt-zip/1.12/zt-zip-1.12.jar
[ERROR] urls[79] = file:/C:/maven/repository/junit/junit/4.12/junit-4.12.jar
[ERROR] urls[80] = file:/C:/maven/repository/org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar
[ERROR] Number of foreign imports: 1
[ERROR] import: Entry[import  from realm ClassRealm[maven.api, parent: null]]
[ERROR]
[ERROR] -----------------------------------------------------
[ERROR] : javax.xml.bind.JAXBException
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginContainerException
The terminal process terminated with exit code: 1

Terminal will be reused by tasks, press any key to close it.

原來問題出在不兼容的 java 版本上。 目前azure函數只支持JDK8,但我用的是JDK11。 切換到正確的java版本后,問題解決。

我遇到了同樣的問題,使用 Azure 函數創建的默認 pom.xml 在使用 Java 11 時會出現此錯誤。

我發現 Azure 自 2021 年 10 月 26 日起增加了對 Java 11 的支持。

https://azure.microsoft.com/en-in/updates/java-11-support-for-azure-functions-is-now-generally-available/

但是默認的 pom 仍然帶有 1.8 的支持配置。

我使用這個https://docs.microsoft.com/en-us/azure/azure-functions/functions-reference-java?tabs=bash%2Cconsumption#java-versions作為參考並將 pom.xml 更新為如下使其在 Java 11 中編譯運行。

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>11</java.version>
    <azure.functions.maven.plugin.version>1.6.0</azure.functions.maven.plugin.version>
    <azure.functions.java.library.version>1.3.1</azure.functions.java.library.version>
    <maven.compiler.source>11</maven.compiler.source>
    <maven.compiler.target>11</maven.compiler.target>
    <functionAppName>dummy-sample-20211118</functionAppName>
</properties>

<dependencies>
    <dependency>
        <groupId>com.microsoft.azure</groupId>
        <artifactId>azure-functions-java-core</artifactId>
        <version>1.0.0-beta-3</version>
    </dependency>

    <!-- Test -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
</dependencies>

<build>
    <pluginManagement>
        <plugins>
            <plugin>
                <artifactId>maven-resources-plugin</artifactId>
                <version>3.2.0</version>
            </plugin>
            <plugin>
                <groupId>com.microsoft.azure</groupId>
                <artifactId>azure-functions-maven-plugin</artifactId>
                <version>${azure.functions.maven.plugin.version}</version>
            </plugin>
        </plugins>
    </pluginManagement>

    <plugins>
        <plugin>
            <groupId>com.microsoft.azure</groupId>
            <artifactId>azure-functions-maven-plugin</artifactId>
            <configuration>
                <resourceGroup>java-functions-group</resourceGroup>
                <appName>${functionAppName}</appName>
                <region>westus2</region>
                <appSettings>
                    <property>
                        <name>FUNCTIONS_EXTENSION_VERSION</name>
                        <value>beta</value>
                    </property>
                </appSettings>
            </configuration>
            <executions>
                <execution>
                    <id>package-functions</id>
                    <goals>
                        <goal>package</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <artifactId>maven-resources-plugin</artifactId>
            <executions>
                <execution>
                    <id>copy-resources</id>
                    <phase>package</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <overwrite>true</overwrite>
                        <outputDirectory>${project.build.directory}/azure-functions/${functionAppName}
                        </outputDirectory>
                        <resources>
                            <resource>
                                <directory>${project.basedir}</directory>
                                <includes>
                                    <include>host.json</include>
                                    <include>local.settings.json</include>
                                </includes>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>

</build>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM