Free Salesforce MuleSoft Developer II Practice Test Questions
60 questionsUpdated 13-Nov-2026
Question 11Choose 1
When implementing a synchronous API where the event source is an HTTP Listener, a
developer needs to return the same correlation ID backto the caller in the HTTP response
header.
How can this be achieved?
Correct answer:
D. NO action is needed as the correlation ID is returned to the caller in the response
header by default
Explanation:
MuleSoft automatically generates a correlation ID when an event is received by an HTTP Listener.
If the incoming request includes an X-Correlation-ID header, Mule will use that value.
If not, Mule generates a new one using its correlation ID generator.
This ID is stored in the event context and is automatically propagated in the response headers unless explicitly disabled.
So, no manual configuration is required to return it — Mule does this by default for traceability and logging purposes2.
Want to verify it?
You can inspect the response headers using a tool like Postman or curl and look for:
X-Correlation-ID:
Why the Other Options Are Incorrect:
A. Auto-generate CorrelationID when scaffolding No such scaffolding option exists — correlation ID is runtime behavior.
B. CorrelationID checkbox in HTTP Listener There’s no checkbox for this in the HTTP Listener config.
C. Custom correlation policy Only needed if you want to override the default behavior — not required for basic propagation.
Question 12Choose 1
A Mule application uses API autodiscovery to access and enforce policies for a RESTful
implementation.
Correct answer:
D.
The name of the flow that hasHTTP listener to receive all incoming RESTful operation
requests
Explanation:
API autodiscovery is used to associate a Mule application with an API instance in Anypoint Platform, allowing policies (e.g., rate limiting, security) to be applied. The flowRef attribute in the configuration points to the flow that serves as the entry point for all incoming RESTful requests, where the HTTP Listener receives and processes these requests. This flow is typically the main flow generated by APIkit that handles the API operations defined in the RAML or OAS file.
Role of flowRef: The flowRef must reference the flow containing the HTTP Listener that accepts incoming requests. This ensures that autodiscovery correctly ties the API instance to the flow where policies are enforced and requests are routed. APIkit Context: When using APIkit to implement a RESTful API, it generates flows (e.g., main flow) with an HTTP Listener to handle all operations. The flowRef should point to this flow, which acts as the root for receiving and dispatching requests to other APIkit-generated flows.
Why Option D: The name of the flow that has HTTP listener to receive all incoming RESTful operation requests?
This is correct because the flowRef must specify the flow with the HTTP Listener that serves as the entry point for the RESTful API. In an APIkit project, this is typically the main flow (e.g., api-main) generated by APIkit, which listens for incoming requests and routes them to the appropriate operation flows. Autodiscovery uses this reference to apply policies and track the API.
Why Not the Other Options? Option A: Nothing because flowRef is an optional attribute which can be passed runtime
This is incorrect. The flowRef attribute is not optional in ; it is required to link the autodiscovery element to a specific flow. While some attributes can be dynamic, flowRef must be statically defined to identify the entry flow at design time. Omitting it or passing it at runtime would result in a configuration error.
Option B: The name of the flow that has APIkit Console to receive all incoming RESTful operation requests
This is incorrect. The APIkit Console is a tool for testing and interacting with the API, not a flow that receives requests. The flowRef should point to a flow with an HTTP Listener, not one associated with the console, which is a separate component hosted by the Mule runtime.
Option C: Any of the APIkit generate implement flows
This is incorrect. APIkit generates multiple flows for each operation defined in the RAML/OAS (e.g., get:\resource, post:\resource), but these are implementation flows that handle specific endpoints. The flowRef must point to the main entry flow with the HTTP Listener, not any arbitrary implementation flow, to ensure proper request routing and policy enforcement.
Detailed Behavior
Autodiscovery Setup: The element in the Mule configuration includes attributes like baseUri, apiName, and flowRef. The flowRef specifies the flow (e.g., api-main) where the HTTP Listener is configured to receive all RESTful requests.
Policy Enforcement: Once autodiscovered, Anypoint Platform applies policies (e.g., OAuth, rate limiting) to the flow referenced by flowRef, ensuring they are enforced on incoming requests. Example Flow: In an APIkit project, the main flow might look like a single HTTP Listener with a base path (e.g., /api/*), which routes requests to operation-specific flows. The flowRef ties this entry point to the autodiscovery configuration.
Key Considerations for the MuleSoft Developer II Exam
API Autodiscovery: Understand the role of and the mandatory flowRef attribute. APIkit: Know how APIkit generates flows and the importance of the main flow with the HTTP Listener. Policy Enforcement: Recognize that autodiscovery links the API to Anypoint Platform for governance. Configuration: Be aware that flowRef must match an existing flow name in the application.
Question 13Choose 1
Refer to the exhibit.m
A Mule application pom.xml configures the Maven Resources plugin to exclude parsing
binary files in theproject’s src/main/resources/certs directory.
Which configuration of this plugin achieves a successful build? BR>
Correct answer:
C. Option C
Explanation:
Key Problem:
The Mule application needs to exclude binary files (e.g., .p12, .jks, .crt) in src/main/resources/certs from Maven resource filtering to prevent corruption during the build.
Correct Configuration (Option C):
The Maven Res ources Plugin must:
Enable filtering (true) for most resources.
Exclude binary files using to avoid parsing them.
Why Option C is Correct?
The configuration in Option C (from the exhibit):<Explicitly lists binary certificate formats to skip filtering.
Matches the files in src/main/resources/certs (.p12, .jks, etc.).
Why Other Options Fail? Option A: Missing or incorrect exclusions.
Option B: Incorrect file extensions (e.g., p1, pen).
Option D: May exclude wrong files or lack critical extensions.
Key Maven Concept:
Filtering replaces placeholders (e.g., ${env}) in files—but must not process binaries (they get corrupted).
Question 14Choose 1
Which command is used to convert a JKS keystore to PKCS12?
Correct answer:
B. Keytool-importkeystore –srckeystore keystore p12-srcstoretype JKS –destkeystore
keystore.p12 –deststoretype PKCS12
Explanation:
The question asks for the correct keytool command to convert a JKS (Java KeyStore) to a PKCS12 keystore. JKS is a Java-specific format, while PKCS12 is a standard format for storing cryptographic keys and certificates. The keytool -importkeystore command is used, requiring parameters like -srckeystore (source file), -srcstoretype (source type), -destkeystore (destination file), and -deststoretype (destination type). The correct command must specify a JKS source and a PKCS12 destination.
✅ Correct Answer: Option B
Command: keytool -importkeystore –srckeystore keystore.p12 -srcstoretype JKS –destkeystore keystore.p12 –deststoretype PKCS12
➡️ Option B is correct because it specifies the source keystore as JKS (-srcstoretype JKS) and the destination as PKCS12 (-deststoretype PKCS12), aligning with the requirement to convert from JKS to PKCS12. Although the source file name keystore.p12 is unconventional for a JKS file (typically .jks), the -srcstoretype JKS parameter explicitly defines the source format as JKS, ensuring the command works. The destination file keystore.p12 matches the PKCS12 format, making this the correct command despite the naming ambiguity.
Incorrect Options:
Option A: keytool -importkeystore –srckeystore keystore.p12 -srcstoretype PKCS12 –destkeystore keystore.jks –deststoretype JKS
➡️ Option A is incorrect because it converts a PKCS12 keystore to JKS, which is the opposite of the required conversion (JKS to PKCS12). The command specifies the source as keystore.p12 with -srcstoretype PKCS12, indicating a PKCS12 source, and the destination as keystore.jks with -deststoretype JKS, indicating a JKS output. This reverses the desired process, as the question explicitly asks for converting a JKS keystore to a PKCS12 keystore, making this command unsuitable for the task.
Option C: keytool -importkeystore –srckeystore keystorejks -srcstoretype JKS –destkeystore keystore.p13 –deststoretype PKCS12
➡️ Option C is incorrect due to the non-standard destination file extension keystore.p13. While it correctly specifies the source as JKS (-srcstoretype JKS) and the destination as PKCS12 (-deststoretype PKCS12), the .p13 extension is not a recognized standard for PKCS12 files, which typically use .p12 or .pfx. This deviation could cause compatibility issues or errors in tools expecting standard PKCS12 extensions. A proper PKCS12 file extension is critical for correct recognition and usage, rendering this option invalid.
Option D: keytool -importkeystore –srckeystore keystore.jks -srcstoretype PKCS12 –destkeystore keystore.p12 –deststoretype JKS
➡️ Option D is incorrect because it specifies the source as PKCS12 (-srcstoretype PKCS12) and the destination as JKS (-deststoretype JKS), which is the reverse of the required JKS-to-PKCS12 conversion. Despite the source file name keystore.jks suggesting a JKS file, the -srcstoretype PKCS12 incorrectly defines it as PKCS12. This command would attempt to convert a PKCS12 keystore to JKS, failing to meet the question’s requirement to convert a JKS keystore to a PKCS12 keystore.
Reference:
Oracle Documentation on keytool: Java SE 8 keytool Documentation
General guide on keystore conversion: Baeldung - Convert JKS to PKCS12
PKCS12 and JKS format details: Java KeyStore API
Question 15Choose 1
A developer has created the first version of an API designed for business partners to work
commodity prices.
What should developer do to allow more than one major version of the same API to be
exposed by the implementation?
Correct answer:
C. In Design Center, open the RAML and modify baseUn to include a variable that
indicates the version number
Explanation:
The question asks how a developer can expose multiple major versions of an API (designed for commodity prices) within the same implementation. The API is defined using RAML (RESTful API Modeling Language) in MuleSoft’s Design Center, and the implementation is likely managed in Anypoint Studio with APIkit. The correct approach must allow different major versions (e.g., v1, v2) to coexist. The solution involves modifying the API specification to support versioning, ideally in a scalable and standard way.
Correct Answer: Option C
✅ Option C: In Design Center, open the RAML and modify baseUri to include a variable that indicates the version number.
Option C is correct because modifying the baseUri in the RAML file to include a version variable (e.g., baseUri: http://api.example.com/{version}/commodities) allows multiple major versions of the API to be exposed. This approach embeds the version (e.g., v1, v2) in the URI, a common RESTful practice. APIkit in Anypoint Studio uses the baseUri to route requests to the appropriate versioned flows, enabling the implementation to handle multiple versions without duplicating the entire API specification or codebase.
Incorrect Options:
❌ Option A: In Design Center, open the RAML and modify each operation to include the major version number.
Option A is incorrect because modifying each operation in the RAML to include the major version number is impractical and non-standard. Adding version numbers to individual operations (e.g., endpoints or methods) violates RESTful principles, as versioning is typically handled at the API level via the URI or headers. This approach would require redundant changes across all endpoints, increase maintenance complexity, and make the API less intuitive for consumers, leading to a poorly designed API specification.
❌ Option B: In Anypoint Studio, generate scaffolding from the RAML, and then modify the in the generated flows to include a parameter to replace the version number.
Option B is incorrect because modifying the in Anypoint Studio to include a version parameter is not a scalable or maintainable solution. This approach bypasses the RAML specification, requiring manual changes to the Mule flows generated by APIkit. Such changes would be overwritten if the RAML is updated and regenerated, leading to maintenance issues. Versioning should be defined in the RAML (e.g., via baseUri) to ensure consistency and proper routing across all API versions.
❌ Option D: In Anypoint Studio, generate scaffolding from the RAML, and then modify the flow names generated by APIkit to include a variable with the major version number.
Option D is incorrect because modifying flow names in Anypoint Studio to include a version variable does not effectively expose multiple API versions. Flow names are internal to the Mule application and do not influence the API’s external URI structure. This approach would not update the API’s routing or endpoint structure, failing to meet the requirement of exposing multiple versions to clients. Versioning should be handled in the RAML specification, not in implementation-specific flow names.
Reference:
MuleSoft Documentation on API Versioning: MuleSoft API Versioning Best Practices
RAML Specification: RAML 1.0 Specification
MuleSoft APIkit Overview: APIkit Documentation
That's the last free question
You've seen the free 25% of every topic (15 of 60 questions). Get complete access for every question, explanation and the timed exam simulator.
Our timed 2026 Salesforce MuleSoft Developer II practice test mirrors the format, number of questions and time limit of the official exam.
The #1 challenge isn't just knowing the material, it's managing the clock. The simulation builds your speed and stamina, so you walk in knowing exactly what to expect.